【友盟+】开发者社区

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

发表于 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下载文件在什么位置?
下一篇:如何能够实现强制更新?

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

本版积分规则

发表主题

精彩推荐

C罗领衔葡萄牙队强阵出击 中超名将连场首发
  中新网客户端6月20日电 北京时间20日晚8时,2018俄罗斯世界杯B组次轮葡萄牙队与摩洛哥队的较量即将在
北京冬奥会场馆“冰坛”明年完工
  北京冬奥会场馆“冰坛”明年完工 将成中国首座标准冰壶场馆   北京市重大项目建设指挥部办公室17日发
冬奥会“冰坛”地上施工 将成中国首块标准冰壶冰场
  冬奥会“冰坛”开始地上施工   建成后将成为我国第一块标准冰壶冰场 可对外开放服务于市民冰上运动

关注我们

新浪微博
微信

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

返回列表