【友盟+】开发者社区

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

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

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

本版积分规则

发表主题

精彩推荐

Xcode9 beat2 编译出错
今天安装了Xcode9 beat2 版本,感觉还不错,就兴冲冲的去编译公司项目,然后发现悲了个催了 ,,编译不通
6.4.5版本sdk,新浪分享内存泄漏
新浪分享的时候,sdk内部持有了Activity造成了内存泄漏
iOS 分享word文件到微信
1. 有个需求是下载网络上的word文件,并分享到微信好友,结果分享出来的不正确。 有指教的吗。。。。

关注我们

新浪微博
微信

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

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