Android5.1-s5p6818平台代码混淆导致jar里面的类不能读取---classnotfound exception


贴上异常log:

12-30 11:37:02.997 2205-2205/com:push A/art: art/runtime/runtime.cc:289] Pending exception java.lang.ClassNotFoundException thrown by 'unknown throw location'
12-30 11:37:02.997 2205-2205/com.A/art: art/runtime/runtime.cc:289] java.lang.ClassNotFoundException: Didn't find class "com.yuntongxun.ecsdk.core.voip.AudioDeviceAndroid" on path: DexPathList[[zip file "/system/app/aner.apk"],nativeLibraryDirectories=[/system/app/EE/lib/arm, /vendor/lib, /system/lib]]
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at int com.yuntongxun.ecsdk.core.jni.IVoIPNative.setAudioContext(java.lang.Object) ((null):-2)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at com.yuntongxun.ecsdk.core.ai com.yuntongxun.ecsdk.core.ai.a(android.content.Context) ((null):-1)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void com.yuntongxun.ecsdk.core.ah.a(android.content.Context) ((null):-1)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void com.yuntongxun.ecsdk.ECClientService.onCreate() ((null):-1)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void android.app.ActivityThread.handleCreateService(android.app.ActivityThread$CreateServiceData) (ActivityThread.java:2761)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void android.app.ActivityThread.access$1800(android.app.ActivityThread, android.app.ActivityThread$CreateServiceData) (ActivityThread.java:151)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1386)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void android.os.Looper.loop() (Looper.java:135)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:5254)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[], boolean) (Method.java:-2)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:372)
12-30 11:37:02.997 2205-2205/com.. A/art: art/runtime/runtime.cc:289]   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:903)
12-30 11:37:02.997 2205-2205/com..A/art: art/runtime/runtime.cc:289]   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:698)


编译OK,但是启动荣联云的IM功能时候就出现了没有问题,定位到log发现是一个类没有找到,也就时classnotfoundexception! 在检查发现这个类是的存在与荣联云的jar里面的,但是我明明导入了这个jar,而且在android.mk里面也做了相应配置,为什么会出现这种情况?

突然想到添加了混淆的Proguard.flag文件,有可能把jar也混淆了所以导致功能逻辑里面没有可以调用的正确类名了!仔细参考了一下Proguard混淆文件的语法确定了这个问题(http://blog.csdn.net/lovexjyong/article/details/24652085

解决办法:

在源码自建系统应用的目录下将Proguard.flag文件里面添加:

-libraryjars libs/Yuntx_FullLib_v5.3.0r.jar

-keep class com.yuntongxun.ecsdk.**{*;}
保证jar里面对应的类不会被混淆,再次编译后刷机启动IM功能ok!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值