【友盟+】开发者社区

自动更新混淆后无法使用怎么办?

发表于 2014-8-26 14:11:14 | |阅读模式

push更新
push更新 发表于 2014-8-26 14:11:14 | 显示全部楼层 |阅读模式
请先参考安卓平台跟混淆相关的问题:
混淆后出错(为什么用proguard混淆后,友盟AndroidSDK的一些功能不可用?)
如果您的应用使用了混淆, 请添加
-keepclassmembers class * {
   public <init>(org.json.JSONObject);
}
这是由于SDK中的部分代码使用反射来调用构造函数, 如果被混淆掉, 在运行时会提示"NoSuchMethod"错误。
另外,由于SDK需要引用导入工程的资源文件,通过了反射机制得到资源引用文件R.java,但是在开发者通过proguard等混淆/优化工具处理apk时,proguard可能会将R.java删除,如果遇到这个问题,请在proguard配置文件中添加keep命令如:
-keep public class [您的应用包名].R$*{
    public static final int *;
}
把[您的应用包名] 替换成您自己的包名,如com.yourcompany.example。
如果您使用了双向反馈功能,还需要添加下面代码,以免我们自定义的UI被混淆:
-keep public class com.umeng.fb.ui.ThreadView {
}

如果使用的是自动更新2.7.0版本,则需要加上以下混淆代码:
-dontwarn okio.**
-dontwarn com.squareup.wire.**
-keep class okio.** {*;}
-keep class com.squareup.wire.** {*;}

如果仍存在问题,可以再做如下操作:
# 添加第三方jar包
-libraryjars libs/umeng-sdk.jar
# 以下类过滤不混淆  
-keep public class * extends com.umeng.**
# 以下包不进行过滤
-keep class com.umeng.** { *; }




上一篇:自动更新的APK下载文件在什么位置?
下一篇:如何能够实现强制更新?

您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

别人春节推送故事,你推送事故……
还有2天就过年啦~所以我们准备了【友盟+】的春节放送!U-Push独家秘籍。5分钟让你们轻轻松松推送,欢欢喜喜
U-Time巡回沙龙:超级用户时代数据增值新思维
互联网运营到底有多难,流量吃紧是真的吗?为何“超级用户思维”成为2018第一个被带火的互联网概念?听听
30万亿的新零售生意,从这5个机会说起
2016年10月云栖大会上,马云的一句“未来没有电子商务这一说,只有新零售”让“新零售”成为业内趋之若鹜

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表