Android里混淆jar包

作者: _compass | 来源:发表于2016-06-02 17:54 被阅读225次

Android里,使用Ellispe混淆jar包的时候,如果jar包里没有访问资源文件的代码,那么直接配置proguard即可,但是如果需要jar包里有访问资源文件的代码,那么直接混淆会有问题:

因为混淆jar包的时候,需要找到代码内的所有定义。

所以需要使用静态的R,因为内部如果没有R的定义,混淆会失败。

具体做法是,单独保存R文件,在代码里引用文件,例如:

public final classR {

public static final classattr {

}

public static final classcolor {

public static final intsolid_black=0x7f040001;

public static final intsolid_white=0x7f040000;

}

public static final classdimen {

public static final footer_max_length=0x7f050002;

}

}

然后在需要加载资源的时候,使用此类即可。这样就不会出错了。

但是在Android Studio下,这样做就不行了。

因为Android Studio下使用静态R会有问题,会报找不到资源的错误。那么在Android Studio下代码混淆的时候,只混淆aar即可,不能使用静态的R,还是使用Build里的R即可。

相关文章

网友评论

    本文标题:Android里混淆jar包

    本文链接:https://www.haomeiwen.com/subject/kwskdttx.html