Android Studio混淆打包忽略第三方jar包配置
来源:互联网 发布:asm算法简介 编辑:程序博客网 时间:2024/05/17 01:30
如有转载,请申明:
转载至 http://blog.csdn.net/qq_35064774/article/details/52871521
写这篇博客的理由
前段时间用Android Studio混淆打包的时候,碰到一些问题,网上找了很多资料,发现很多都是Copy Paste,找了许久没有找到有用的资料,然后在Stack Overflow中找到了部分答案。所以决定自己写一篇“有用的博客”。
启用混淆打包
在Android Studio中只需要打开build.gradle文件,找到如下一段,把minifyEnabled 设置为 true,就开启了混淆打包。
buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }}
混淆配置
混淆配置文件介绍
- AS中支持默认配置+自定义配置,比如上面的设置中,默认配置文件是
proguard-android.txt
,自定义配置文件是proguard-rules.pro
。 - 默认配置文件一般都是在Android SDK目录下,比如
E:\Android\sdk\tools\proguard
。
自定义配置文件一般在工程目录下,在Android视图下的,Gradle Scripts
中就能找到。 - 默认配置文件一般不用改,能满足大部分项目打包需求。
但大部分项目可能都会用到第三方jar包,这个时候,就需要有自定义的配置。因为大部分jar包发布时就已经做了混淆处理,所以再次混淆必然会报错。
自定义配置忽略第三方jar包
首先我们要知道项目引入了多少jar包。
在AS中也非常简单。打开build.gradle
,找到dependencies
,比如我的项目中是这样的:
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile files('libs/RootTools.jar') compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:support-v4:23.4.0' compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.squareup.okio:okio:1.10.0' compile 'com.google.code.gson:gson:2.7' compile 'com.android.support:support-vector-drawable:23.4.0' compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha9' testCompile 'junit:junit:4.12'}
在这里可以清晰的看到compile
中引用的库,除了官方的support
库,其他都是需要自己在配置文件中取消混淆的。
接着是自定义文件配置。打开proguard-rules.pro
,在里面加入-keep class com.xxx.**{*;}
这样的忽略指定包名的语句。比如我的配置如下:
-keep class com.squareup.okio.**{*;}-keep class com.squareup.okhttp3.**{*;}-keep class com.google.code.gson.**{*;}-keep class com.squareup.okio.**{*;}-keep class com.stericson.RootTools.**{*;}
当然这样配置之后,可能你的项目依旧报错,那可能是你也使用了okio
库。只需要在附加上这样一句。
-dontwarn okio.**
如果加上之后依旧报错,可以试着加上
-keepattributes EnclosingMethod
最后如果还是有错误,那么请复制错误自行百度或谷歌。
2 0
- Android Studio混淆打包忽略第三方jar包配置
- android studio 代码混淆如何忽略第三方jar包
- android studio 代码混淆如何忽略第三方jar包
- android studio 代码混淆如何忽略第三方jar包
- android混淆打包配置(忽略第三方jar)
- android混淆打包配置(忽略第三方jar)
- Android混淆打包配置(忽略第三方jar)
- android混淆打包配置(忽略第三方jar)
- android混淆打包配置(忽略第三方jar)
- android混淆, 忽略第三方jar包
- android 第三方jar包 混淆打包
- Android 混淆打包不混淆第三方jar包
- Android 混淆打包不混淆第三方jar包
- android 混淆时忽略第三方jar包的
- android studio 代码混淆如何忽略第三方jar包 The same input jar is specified twice
- android 打包时不混淆第三方的jar包
- Android studio 混淆打包时如何忽略依赖库中的第三方.so文件
- Android不混淆第三方jar包
- makefile用法(百度)
- 购物车
- 没关系,是爱情啊 经典台词
- Alien Skin Exposure X 2.0.0.396 简体中文完美汉化 最好的胶片效果滤镜
- AlertDialog源码解析之一
- Android Studio混淆打包忽略第三方jar包配置
- 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456
- 选项卡
- 小码哥杯java程序比赛复习(三)继承与super
- java代码实现将无表头.txt文本文件转化为weka能识别.arff文件
- 动态计算控件高度和宽度的方法
- hdu 3966(树链剖分)
- 原型图的设计
- Ubuntu挂载ISO文件