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//签名文件
}
}
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//签名文件
}
}
相关文章推荐
- Android Studio2.2中使用gradle打包apk中遇到的问题
- Android studio 3.0上进行多渠道打包遇到的问题
- Android Studio打包时遇到的问题
- Android Studio 多渠道打包遇到的问题总结
- Android Studio打包APK是遇到的一些问题(Lint检查的错误)
- android studio更新之后打包遇到V1(Jar Signature)、 V2(Full APK Signature)问题
- 使用Android Studio打包遇到的问题
- Android studio打包遇到的问题总结
- app 开发及其android studio 打包遇到的问题总结(二)
- Android studio 3.0上进行多渠道打包遇到的问题
- Android studio 3.0上进行多渠道打包遇到的问题小结(超简洁版)
- Android打包时遇到的问题解决方法
- Android Studio打包时解决V4包重复的问题
- Android Studio 2.3.*升级到3.0遇到的问题和解决版本
- 将MATLAB程序打包为jar文件的时候遇到的问题
- eclipse转成Android studio过程中遇到的问题
- Android Studio启动模拟器失败问题——遇到HAXM is not working and emulator runs in emulation mode
- Android Studio升级到2.3.3之后的打包问题
- android studio 2.2 打包失败的问题
- iOS关于打包静态库遇到的两个小问题