首页 > 代码库 > 移动MM强联网SDK混淆出错

移动MM强联网SDK混淆出错

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技术群的解决问题的速度绝对是杠杠滴!

本文出自 “小鸟学C变大鹏” 博客,谢绝转载!

移动MM强联网SDK混淆出错