1.需求:接入移动MM强联网支付SDK( V3.0.0),游戏需要混淆
2.问题:按照移动MM的文档加入防止混淆的语句
-libraryjarslibs/mmbilling.3.0.0.jar -keepclass safiap.framework.** {*; } -keep class com.ccit.** {*; } -keep class ccit.** { *; } -keep class mm.purchasesdk.** -keep class mm.purchasesdk.** {*;}
重新打包安装,初始化的时候报错,错误日志如下
09-17 11:16:25.322: E/AndroidRuntime(26825): java.lang.NoClassDefFoundError: com.chinaMobile.MobileAgent 09-17 11:16:25.322: E/AndroidRuntime(26825): at mm.purchasesdk.core.v.a(Unknown Source) 09-17 11:16:25.322: E/AndroidRuntime(26825): at mm.purchasesdk.core.h.a(Unknown Source) 09-17 11:16:25.322: E/AndroidRuntime(26825): at mm.purchasesdk.core.h.a(Unknown Source) 09-17 11:16:25.322: E/AndroidRuntime(26825): at mm.purchasesdk.core.i.handleMessage(Unknown Source) 09-17 11:16:25.322: E/AndroidRuntime(26825): at android.os.Handler.dispatchMessage(Handler.java:99) 09-17 11:16:25.322: E/AndroidRuntime(26825): at android.os.Looper.loop(Looper.java:153) 09-17 11:16:25.322: E/AndroidRuntime(26825): at android.os.HandlerThread.run(HandlerThread.java:60)
3.原因:
java.lang.NoClassDefFoundError: com.chinaMobile.MobileAgent
找不到 com.chinaMobile.MobileAgent这个类的定义,应该是被混淆了,所以将这个类keep一下吧。
4.解决方法:
在混淆文件中加入如下
-keep class com.chinaMobile*.** -keep class com.chinaMobile*.**{*;}
5.总结:
这种问题应该是SDK进行了更新,但是文档中没有及时说明。不过移动MM技术群的解决问题的速度绝对是杠杠滴!
时间: 2024-11-05 11:55:42