您的位置:首页 > 移动开发 > Android开发

android studio打包遇到的问题

2018-01-19 12:03 281 查看
在使用android studio打包添加代码混淆过程中遇到的问题
Warning:Exception while processing task java.io.FileNotFoundException: F:\...\app\build\intermediates\proguard-rules\release\aapt_rules.txt (系统找不到指定的路径。)
解决方案如下:
只需要在菜单栏选择build --> Clean Project ,然后在build --> Make Project即可,然后就能在这个路径下找到这个aapt_rules.txt文件了,再次build apk就不会报错了哦(注意:混淆的是release)

Warning:Exception while processing task java.io.IOException: The same input jar [...\app\libs\alipaySdk-20170725.jar] is specified twice.
解决方案如下:

打开 proguard-rules.pro 或者是proguard.cfg 
在所有的-libraryjars前插入# 成 #-libraryjars x.jar

造成这个的原因是
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
}    
这个里面已经把所有的jar 到引入了。所以在打包的时候就不需要再次在proguard-rules.pro 或者是proguard.cfg 中再次引入了。

Warning:Exception while processing task java.io.IOException: Please correct the above warnings first.
解决方案如下:
在proguard-rules.pro文件里面加上一句:-ignorewarnings  (最好把上面的Warning:Exception问题都解决掉,不然,可能会导致打包后无法正常使用,不需要导入的jar去掉  对第三方jar 在proguard-rules.pro文件夹夹添加-keep 和-dontwarn,比如下面的:-dontwarn javax.annotation.**
-dontwarn javax.inject.**
# OkHttp3
-dontwarn okhttp3.logging.**
-keep class okhttp3.internal.**{*;}
-dontwarn okio.**
# Retrofit
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
# RxJava RxAndroid
-dontwarn sun.misc.**
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
rx.internal.util.atomic.LinkedQueueNode producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
rx.internal.util.atomic.LinkedQueueNode consumerNode;
}

# Gson
-keep class com.google.gson.stream.** { *; }
-keepattributes EnclosingMethod
-keep class com.xy.example.data.entity.**{*;}#这是你定义的实体类(使用RxJava+retrofit必须加,不然无法解析数据)
)签名打包修改app下的build.gradle文件
buildTypes {
release {
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
//启用multidex的支持
multiDexEnabled true
minifyEnabled true//是否启用混淆代码的功能
zipAlignEnabled true // Zipalign优化 压缩对齐生成的apk包
shrinkResources true// 移除无用的resource文件
//指定混淆规则,需要压缩优化的混淆要把proguard-android.txt换成proguard-android.txt
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.myConfig//签名文件
}
debug {
minifyEnabled false
zipAlignEnabled true // Zipalign优化
shrinkResources false // 移除无用的resource文件
signingConfig signingConfigs.myConfig//签名文件
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息