在你的CX-Programmer软件中,选择帮助,然后选择指令,输入KEEP,你能看到详细用法说明。
请先参考安卓平台跟混淆相关的问题:混淆后出错(为什么用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.** { *}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)