You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android集成TUICallKit触发UnsatisfiedLinkError崩溃求助

Android集成TUICallKit触发UnsatisfiedLinkError崩溃求助

嗨,我之前帮朋友排查过类似的问题,这个UnsatisfiedLinkError本质是Native库没正确加载,导致找不到对应的方法实现。针对TUICallKit的场景,给你几个实用的排查方向:

  • 检查依赖配置是否完整:确保你的build.gradle里正确引入了TUICallKit的依赖,并且版本是官方推荐的稳定版。这个错误来自com.tencent.liteav包,所以要确认TUICallKit依赖的LiteAV库有没有被自动拉取到——可以去项目的External Libraries里看看有没有相关的liteav模块,要是没有的话,可能需要手动添加LiteAV的依赖或者检查maven仓库配置是否正确。

  • 适配CPU架构:Android设备有不同的CPU架构(比如armeabi-v7a、arm64-v8a),你需要确认项目的build.gradle里ndk.abiFilters配置的架构和TUICallKit支持的架构一致。比如如果你的项目只配置了x86,而测试设备是arm64架构,就会出现找不到对应so库的情况。另外,也要检查有没有其他第三方库和TUICallKit的so库冲突,导致so被覆盖或者打包时遗漏。

  • 确认SDK初始化顺序:一定要在Application的onCreate方法里先初始化腾讯云的核心SDK(比如TUICore),再初始化TUICallKit。如果初始化顺序搞反了,可能会导致Native库加载不完整,触发这个错误。

  • 清理缓存重新构建:有时候项目的build缓存会出问题,试试点击Android Studio的File -> Invalidate Caches...,勾选清理缓存并重启IDE,然后重新同步gradle、构建项目,很多莫名其妙的加载问题都能这么解决。

  • 检查混淆规则:如果你的项目开启了混淆,一定要在proguard-rules.pro里添加TUICallKit和LiteAV相关的混淆豁免规则,不然混淆会修改Native方法的签名,导致找不到实现:

-keep class com.tencent.liteav.** { *; }
-keep class com.tencent.tuicallkit.** { *; }
-keep class com.tencent.tuicore.** { *; }

附你提供的崩溃栈信息:

java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.liteav.base.Log.nativeWriteLogToNative(int, java.lang.String, java.lang.String) (tried Java_com_tencent_liteav_base_Log_nativeWriteLogToNative and Java_com_tencent_liteav_base_Log_nativeWriteLogToNative__ILjava_lang_String_2Ljava_lang_String_2)
        at com.tencent.liteav.base.Log.nativeWriteLogToNative(Native Method)

备注:内容来源于stack exchange,提问作者 AstralWanderer

火山引擎 最新活动