Android里混淆jar包

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即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,929评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,810评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,326评论 18 399
  • 人们在学习语言的时候会遇到很多困难,尤其是在学习第二外语时候。很多人会感觉英语难学,他们会遇到以下的问题 听不懂很...
    雪舞天涯阅读 2,571评论 0 0
  • 听说爱乐之城讲诉了一个五分钟的美梦和一段真实的甚至有点鲜血淋淋的感情。 其中一段女主被男主指责双重标准,允许自己追...
    citoyendumonde阅读 1,805评论 0 0

友情链接更多精彩内容