【友盟+】开发者社区

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

push更新 发表于 2016-3-23 16:13:29 |

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




dogin2006
dogin2006 发表于 2016-1-18 13:11:21 | 显示全部楼层
Notification.setLatestEventInfo() 还是得友盟改代码才行
不过可以通过忽略掉warn让混淆通过
-dontwarn com.umeng.update.c$a
-dontwarn com.umeng.update.net.DownloadingService$1
-dontwarn com.umeng.update.net.DownloadingService$b
-dontwarn com.umeng.update.net.c$c


Putao
Putao 发表于 2016-3-11 10:30:56 | 显示全部楼层
java.lang.ClassNotFoundException: com.umeng.message.PushAgent:  [isIncludesUmengPushSDK]这个是什么问题

风水先生
风水先生 发表于 2016-3-23 16:13:29 | 显示全部楼层
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lokio/AsyncTimeout$Watchdog;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
        at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
        at com.android.dx.command.dexer.Main.run(Main.java:277)
        at com.android.dx.command.dexer.Main.main(Main.java:245)
        at com.android.dx.command.Main.main(Main.java:106)

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'F:\MyTool\jdk1.8.0_74_x64\bin\java.exe'' finished with non-zero exit value 2

不懂,神马情况
您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

微信登录没有获取到用户信息\没有反应
1. 确认能否进入微信客户端授权确认页面 如果不能进入微信授权页面,或者在微信客户端账号未登录状态下只
【友盟+】声明:坚决抵制网络劫持行为!
近期我们收到部分用户反馈,部署了网站统计的代码会“出现广告弹窗”及“浏览器提示不安全警告”的问题。
网络营销推广应该怎样落地执行 【聚网盟一小赵】
聚网盟全网整合网络营销推广应该怎样落地执行 【聚网盟一小赵】 大家好!今天聚网盟小赵就跟大家讲一下聚

关注我们

新浪微博
微信

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

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