我是靠谱客的博主 碧蓝老虎,最近开发中收集的这篇文章主要介绍Android 生成Release版本时,混淆问题的解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天在生成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版本时,混淆问题的解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部