环信初始化异常:java.lang.ClassNotFoundException: com.xiaomi.mipush.sdk.MiPushClient
问题描述:
环信版本2.0,在华为P6机器调测通过可以运行,换了mate7之后,出现上面的异常,做了以下的排查工作:
1.包内的method总数小于65535,大概在50000左右,基本上排除multiDex问题;
2.在混淆文件中增加-keep class com.xiaomi.mipush.sdk.MiPushClient ,不管用;
3.在华为P6(android4.4,api19)不出现,能够起到,换了mate7(android6,api23)问题必现;
5.异常调用栈:
java.lang.ClassNotFoundException: com.xiaomi.mipush.sdk.MiPushClient
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at java.lang.Class.forName(Class.java:285)
at com.easemob.chat.EMPushNotificationHelper.checkAvailablePushServ
at com.easemob.chat.EMSessionManager.loginSync(Unknown Source)
at com.easemob.chat.EMSessionManager.access$0(Unknown Source)
at com.easemob.chat.EMSessionManager$1.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.xia
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.ja
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
... 7 more
Suppressed: java.lang.ClassNotFoundException: com.xiaomi.mipush.sdk.
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 8 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the
memoryCache() and memoryCacheSize() calls overlap each other
diskCache(), diskCacheSize() and diskCacheFileCount calls overlap each
diskCache() and diskCacheFileNameGenerator() calls overlap each other
4. 怀疑是环信的初始化没有成功导致,对比p6和mate7启动logcat过程,mate7缺失下面的打印信息(P6启动信息),从下面信息看出P6中也找不到xiaomi的类,但不报异常,所以怀疑是环信初始化失败:
D/EaseMob: easemob init in process:31084
D/EaseMob: passed userName : null
D/EaseMob: is autoLogin : true
D/EaseMob: lastLoginUser : 11293476
D/EMDBManager: initDB : 11293476
D/EaseMob: HuanXin SDK is initialized with version : 2.2.5
D/HXSDKHelper: initialize EMChat SDK
D/HXSDKHelper: init HuanXin Options
D/group: group manager clear
D/HXSDKHelper: init listener
D/EMDBManager: created chatdb for :11293476
I/dalvikvm: Could not find method Could not find method com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable, referenced from method com.easemob.chat.EMPushNotificationHelper.checkAvailablePushService
VFY: unable to resolve static method 34845: Lcom/google/android/gms/common/GooglePlayServicesUtil;.isGooglePlayServicesAvailable (Landroid/content/Context;)I
VFY: replacing opcode 0x71 at 0x003b
Could not find method com.xiaomi.mipush.sdk.MiPushClient.shouldUseMIUIPush, referenced from method com.easemob.chat.EMPushNotificationHelper.checkAvailablePushService
VFY: unable to resolve static method 42079: Lcom/xiaomi/mipush/sdk/MiPushClient;.shouldUseMIUIPush (Landroid/content/Context;)Z
VFY: replacing opcode 0x71 at 0x008f
0916进展:
华为P6上面也出现该异常,位置比较靠下,但没有报process stopped due to unexpected signal 13。
环信版本2.0,在华为P6机器调测通过可以运行,换了mate7之后,出现上面的异常,做了以下的排查工作:
1.包内的method总数小于65535,大概在50000左右,基本上排除multiDex问题;
2.在混淆文件中增加-keep class com.xiaomi.mipush.sdk.MiPushClient ,不管用;
3.在华为P6(android4.4,api19)不出现,能够起到,换了mate7(android6,api23)问题必现;
5.异常调用栈:
java.lang.ClassNotFoundException: com.xiaomi.mipush.sdk.MiPushClient
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at java.lang.Class.forName(Class.java:285)
at com.easemob.chat.EMPushNotificationHelper.checkAvailablePushServ
at com.easemob.chat.EMSessionManager.loginSync(Unknown Source)
at com.easemob.chat.EMSessionManager.access$0(Unknown Source)
at com.easemob.chat.EMSessionManager$1.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.xia
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.ja
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
... 7 more
Suppressed: java.lang.ClassNotFoundException: com.xiaomi.mipush.sdk.
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 8 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the
memoryCache() and memoryCacheSize() calls overlap each other
diskCache(), diskCacheSize() and diskCacheFileCount calls overlap each
diskCache() and diskCacheFileNameGenerator() calls overlap each other
4. 怀疑是环信的初始化没有成功导致,对比p6和mate7启动logcat过程,mate7缺失下面的打印信息(P6启动信息),从下面信息看出P6中也找不到xiaomi的类,但不报异常,所以怀疑是环信初始化失败:
D/EaseMob: easemob init in process:31084
D/EaseMob: passed userName : null
D/EaseMob: is autoLogin : true
D/EaseMob: lastLoginUser : 11293476
D/EMDBManager: initDB : 11293476
D/EaseMob: HuanXin SDK is initialized with version : 2.2.5
D/HXSDKHelper: initialize EMChat SDK
D/HXSDKHelper: init HuanXin Options
D/group: group manager clear
D/HXSDKHelper: init listener
D/EMDBManager: created chatdb for :11293476
I/dalvikvm: Could not find method Could not find method com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable, referenced from method com.easemob.chat.EMPushNotificationHelper.checkAvailablePushService
VFY: unable to resolve static method 34845: Lcom/google/android/gms/common/GooglePlayServicesUtil;.isGooglePlayServicesAvailable (Landroid/content/Context;)I
VFY: replacing opcode 0x71 at 0x003b
Could not find method com.xiaomi.mipush.sdk.MiPushClient.shouldUseMIUIPush, referenced from method com.easemob.chat.EMPushNotificationHelper.checkAvailablePushService
VFY: unable to resolve static method 42079: Lcom/xiaomi/mipush/sdk/MiPushClient;.shouldUseMIUIPush (Landroid/content/Context;)Z
VFY: replacing opcode 0x71 at 0x008f
0916进展:
华为P6上面也出现该异常,位置比较靠下,但没有报process stopped due to unexpected signal 13。
没有找到相关结果
已邀请:
9 个回复
siri006
1. 在某种情况下,该异常在mate7上存在,但程序仍然可以正常运行;某种情况,是指去掉某一个相机功能模块;
2. 初始化过程中,出现了[ 09-15 20:14:38.899 3732: 3732 E/] process stopped due to unexpected signal 13 异常;
siri006
1.异常触发时机:java.lang.ClassNotFoundException: com.xiaomi.mipush.sdk.MiPushClient发生在EMChat.getInstance().init(context)调用中,环信的研发同事帮忙看看;
2.主要关注两个地方:
a,初始化之前出现的process stopped due to unexpected signal 13 错误;
b,初始化过程EMChat.getInstance().init(context) 是如何引起异常的;
[已注销]
siri006
siri006
在环信GitHub的ChatDemoUI中,也存在异常,这次异常是com.huawei.android.pushagent.api.PushManager,具体信息见下;
LIB版本:easemobchat_2.3.2
环境:mata7,android6,API 23.
I/System: core_booster, getBoosterConfig = false
I/System: core_booster, getBoosterConfig = false
I/sxmppcon: enter disconnect (199547775)
I/art: Rejecting re-init on previously-failed class java.lang.Class<com.easemob.media.AVNative>
I/EMChatService: chat service created
I/System: core_booster, getBoosterConfig = false
W/System.err: java.lang.ClassNotFoundException: com.huawei.android.pushagent.api.PushManager
W/System.err: at java.lang.Class.classForName(Native Method)
W/System.err: at java.lang.Class.forName(Class.java:324)
W/System.err: at java.lang.Class.forName(Class.java:285)
W/System.err: at com.easemob.chat.EMPushNotificationHelper.checkAvailablePushService(Unknown Source)
W/System.err: at com.easemob.chat.EMSessionManager.loginSync(Unknown Source)
W/System.err: at com.easemob.chat.EMSessionManager.access$000(Unknown Source)
W/System.err: at com.easemob.chat.EMSessionManager$1.run(Unknown Source)
W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.huawei.android.pushagent.api.PushManager"
W/System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
W/System.err: ... 7 more
W/System.err: Suppressed: java.lang.ClassNotFoundException: com.huawei.android.pushagent.api.PushManager
W/System.err: at java.lang.Class.classForName(Native Method)
W/System.err: at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
W/System.err: at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
siri006
在ChatDemoUI3.0上也存在该问题
环信SDK版本:easemobchat_2.3.2
运行环境: 华为mate7, android6,API 23
异常报错: 上次提到的报错可能是排查重点:process stopped due to unexpected signal 13
I/art: Late-enabling -Xcheck:jni
E/HAL: load: id=gralloc != hmi->id=gralloc
I/MultiDex: VM with version 2.1.0 has multidex support
I/MultiDex: install
I/MultiDex: VM has multidex support, MultiDex support library is disabled.
I/MultiDex: install
I/MultiDex: VM has multidex support, MultiDex support library is disabled.
[ 09-16 08:54:14.261 3732: 3732 E/ ]
process stopped due to unexpected signal 13
E/SMACK-Voe: enter JNI_OnLoad
I/eice-jni: LOAD EICE TORNADO007 WEBRTC_EASEMOB DEFINED
I/eice-jni: register_eice_jni() +++++++++++++++++++
I/eice-jni: register native ...
I/eice-jni: register native OK
I/eice-jni: check init OK
W/System.err: java.lang.ClassNotFoundException: com.huawei.android.pushagent.api.PushManager
W/System.err: at java.lang.Class.classForName(Native Method)
W/System.err: at java.lang.Class.forName(Class.java:324)
W/System.err: at java.lang.Class.forName(Class.java:285)
W/System.err: at com.easemob.chat.EMPushNotificationHelper.checkAvailablePushService(Unknown Source)
W/System.err: at com.easemob.chat.EMSessionManager.loginSync(Unknown Source)
W/System.err: at com.easemob.chat.EMSessionManager.access$000(Unknown Source)
W/System.err: at com.easemob.chat.EMSessionManager$1.run(Unknown Source)
siri006
ertrtesr
Caused by: java.lang.NoClassDefFoundError: com/xiaomi/mipush/sdk/MiPushClient
Caused by: java.lang.NoClassDefFoundError: com/huawei/android/pushagent/api/PushManager
c9039