TencentCloud / TIMSDK

Tencent Cloud Chat features a comprehensive suite of solutions including global access, one-to-one chat, group chat, message push, profile and relationship chain hosting, and account authentication.
https://trtc.io/products/chat
2.57k stars 2.76k forks source link

【Anddoid】-【5.1.2】:java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.imsdk.manager.NativeManager.nativeSetUserConfig #918

Open yongningyang opened 3 years ago

yongningyang commented 3 years ago

【IMSDK】-【5.1.2】:【描述您的问题】 issue内容:

【当前现象】:java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.imsdk.manager.NativeManager.nativeSetUserConfig 【集成包】:IMSDK 5.1.2 【机型】:小米MIX2 【之前版本有无此问题】:不知 【有无日志或者描述、截图】:如有请附上相关日志,方便我们定位,如有截图更好 java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.imsdk.manager.NativeManager.nativeSetUserConfig(com.tencent.imsdk.TIMUserConfig) (tried Java_com_tencent_imsdk_manager_NativeManager_nativeSetUserConfig and Java_com_tencent_imsdk_manager_NativeManager_nativeSetUserConfig__Lcom_tencent_imsdk_TIMUserConfig_2) at com.tencent.imsdk.manager.NativeManager.nativeSetUserConfig(Native Method) at com.tencent.imsdk.manager.BaseManager.setUserConfig(BaseManager.java:491) at com.tencent.imsdk.TIMManager.setUserConfig(TIMManager.java:109) at com.tencent.imsdk.v2.V2TIMManagerImpl.initSDK(V2TIMManagerImpl.java:110) at com.tencent.qcloud.tim.uikit.TUIKitImpl.initIM(TUIKitImpl.java:157) at com.tencent.qcloud.tim.uikit.TUIKitImpl.init(TUIKitImpl.java:95) at com.tencent.qcloud.tim.uikit.TUIKit.init(TUIKit.java:19) at com.lemon.social.ui.chatroom.TencentIMManager.initTencentIM(TencentIMManager.java:262) at com.lemon.social.ui.chatroom.TencentIMManager.(TencentIMManager.java:77) at com.lemon.social.ui.chatroom.TencentIMManager.init(TencentIMManager.java:88) at com.lemon.social.application.LemonApplication.onCreate(LemonApplication.java:305) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1155) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6017) at android.app.ActivityThread.access$1200(ActivityThread.java:202) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1680) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:6878) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)

120660021 commented 3 years ago

我也遇到同样的问题

ChenPengBo commented 3 years ago

我也遇到了

CodePoem commented 3 years ago

+1 Any Solution?

kangwf commented 3 years ago

我们线上也出现了。初始化一个第三方能把应用给弄崩溃,不带这么坑人的吧。。。

Junkmer commented 3 years ago

java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.imsdk.manager.NativeManager.nativeSetUserConfig(com.tencent.imsdk.TIMUserConfig) (tried Java_com_tencent_imsdk_manager_NativeManager_nativeSetUserConfig and Java_com_tencent_imsdk_manager_NativeManager_nativeSetUserConfig__Lcom_tencent_imsdk_TIMUserConfig_2)

该crash有几种触发的表现,之前有其他客户反馈过。

原因一:混用导致 对于使用基础版,V1/V2 不能混用(尤其是初始化配置的时候)。 例如:应用内使用“V2TIM”开头的api,初始化时使用“TIM”开头的接口初始化。 V1: TIMManager.getInstance().init(context, sdkConfig); TIMUserConfig userConfig = new TIMUserConfig(); TIMManager.getInstance().setUserConfig(userConfig); V2: V2TIMSDKConfig config = new V2TIMSDKConfig(); V2TIMManager.getInstance().initSDK(context, sdkAppID, sdkConfig, new V2TIMSDKListener() {}); 解决方案:替换初始化接口,一定不能混用。

原因二:应用支持的cup架构下没有IM 的libImSDK.so 库。 由于不同的机型,支持的cup架构及优选cup架构都会不同。所以当加载的cpu架构下发现没有im的"libImSDK.so"库,就会出现crash。 解决方案:解压apk文件,查看对应的架构下是否都有IM的so库。哪个架构下没有,就从armeabi-v7a复制一份添加进去。

原因三:再次打包aar库导致"libImSDK.so"没有打包进去。 有些客户需要将IM SDK集成后再次打包成aar供其它客户快速接口,支持如果指定加载的IM SDK路径错误时,自然IM的so库也就没有打包进去。 解决方案:解压客户再次封装后的aar,将IM的“libImSDK.so”重新添加一份。