android studio 代码混淆如何忽略第三方jar包
2015-07-07 10:41
357 查看
日前在打包混淆包含第三方jar包的android studio项目时 报出了各种错误,但是debug版本却能正常运行,于是怀疑android studio 打包的时候把第三方jar包给混淆了,第三方jar包有些已经混淆过,再混淆一次,那肯定会出现蛋疼的问题。
Error:Execution failed for task ‘:app:proguardRelease’.
java.io.IOException: The same input jar [E:\myproject\app\libs\XX.jar] is specified twice.
也就是说混淆规则文件中,我们指定了2次
code:
上面的代码以 [-keep class com.baidu.* { ; }**] 为例,意思是不混淆com.baidu包下的各个类及类里面的所以域和方法。把上面的包名换成自己想要忽略的jar下面暴露的包名即可。
另一个坑
遇到这个问题是本能的想到直接在app目录下的proguard-rules.pro(或者proguard-rules.txt)混淆规则文件直接-libraryjars libs/xx.jar避免混淆。但是却引出了另一个错误:Error:Execution failed for task ‘:app:proguardRelease’.
java.io.IOException: The same input jar [E:\myproject\app\libs\XX.jar] is specified twice.
也就是说混淆规则文件中,我们指定了2次
解决方法
打开app目录下的lib文件夹,将各第三方jar下的包名在proguard-rules.pro 文件中过滤。code:
-keep class com.baidu.** { *; } -keep class vi.com.gdi.bgl.android.**{*;} -keep class com.google.gson.**{*;} -keep class com.android.volley.**{*;}
上面的代码以 [-keep class com.baidu.* { ; }**] 为例,意思是不混淆com.baidu包下的各个类及类里面的所以域和方法。把上面的包名换成自己想要忽略的jar下面暴露的包名即可。
相关文章推荐
- Android源码分析-Context
- Android跨语言篇
- android 开发 知识点
- Android学习之LayoutInflater类和inflate()方法的使用
- Android获取mac地址
- Android 检查设备是否存在 导航栏 NavigationBar
- Android Studio快捷键
- Android Studio导入第三方类库的方法
- [转]Android重力感应开发
- Android图片淡化 透明度 设置Alpha值
- android 存储5种方式
- android api 说明
- android studio上的百度定位的初始化
- Error:(24, 13) Failed to resolve: com.android.support:recyclerview-v7:20.+ <a href="install.m2.repo"
- Android Studio 一些方便使用的设置
- android中获取图片的缩略图(解决OutOfMemoryError)内存溢出的Bug
- Android SDK快速下载
- 1 Android M Developer Preview - Program Overview
- android 语音识别
- Android关于全局异常捕获及发送到服务器