概述
今天在生成release版本的apk时,出现了编译失败,百度以后,发现是混淆配置出现错误
Warning:com.squareup.picasso.OkHttpDownloader: can't find referenced class Warning:com.squareup.picasso.OkHttpDownloader: can't find referenced class com.squareup.okhttp.Request
.........
Warning:okio.Okio: can't find referenced class java.nio.file.Files Warning:okio.Okio: can't find referenced class java.nio.file.Path
.........
Warning:rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef: can't find referenced class sun.misc.Unsafe Warning:rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef: can't find referenced
从上面的log中可以看到有三个包配置不正确,第一个是okhttp,第二个是okio,第三个是rx,打开app下proguard-rules.pro,配置如下内容,便可以编译成功。
okhttp
# okhttp
-keepattributes SourceFile,LineNumberTable -keep class com.parse.*{ *; } -dontwarn com.parse.** -dontwarn com.squareup.picasso.** -keepclasseswithmembernames class * { native <methods>;
}
okio
# Okio
-dontwarn com.squareup.**
-dontwarn okio.**
-keep public class org.codehaus.* { *; }
-keep public class java.nio.* { *; }
rx
# 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;
}
通过如上配置,可以正常生成release版本的apk了。以后出现类似的问题,只要找到对应的混淆规则添加,就可以了。。。希望对大家有用,下一篇文章,我会整理一下一些实用频率很高的混淆配置。
转载于:Android 生成Release版本时,混淆问题的解决-蒲公英云
最后
以上就是碧蓝老虎为你收集整理的Android 生成Release版本时,混淆问题的解决的全部内容,希望文章能够帮你解决Android 生成Release版本时,混淆问题的解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复