You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成LinPhone SDK Android 5.2.70初始化时遇UnsatisfiedLinkError错误求助

LinPhone SDK 5.2.70 集成时 __emutls_get_address 符号缺失错误解决思路

集成org.linphone:linphone-sdk-android:5.2.70时,执行以下初始化代码:

fun initCore() {
   val factory = Factory.instance()
   factory.setDebugMode(true, "Hello Linphone")
   core = factory.createCore(null, null, getApplication())
}

出现错误:

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__emutls_get_address" referenced by "/data/app/~~etnr80db3rwY6xyBglTUnA==/package_id-XCdnucrbTwRLEvQ0pmlAmw==/base.apk!/lib/arm64-v8a/libmediastreamer.so"

以下是具体解决思路:

  • 检查NDK版本兼容性:LinPhone SDK 5.2.x系列编译依赖特定NDK版本,推荐使用NDK 25或26版本。版本不匹配会导致底层符号不兼容,在Module级build.gradle中指定NDK版本:

    android {
        ndkVersion "25.2.9519653" // 可根据LinPhone官方文档调整为对应推荐版本
    }
    
  • 确认ABI过滤配置:错误发生在arm64-v8a架构下,需确保项目配置的ABI与SDK支持的架构一致,避免混合架构引发依赖缺失。在build.gradle中配置:

    android {
        defaultConfig {
            ndk {
                abiFilters 'arm64-v8a', 'armeabi-v7a' // LinPhone 5.2.x支持主流架构,按需调整
            }
        }
    }
    
  • 清理缓存并重新构建:旧的编译缓存可能导致库文件冲突,执行以下步骤:

    • 点击Android Studio菜单栏Build > Clean Project
    • 执行Build > Rebuild Project
    • 删除项目根目录的.gradle、build文件夹及app/build文件夹,重新同步项目
  • 排查依赖冲突:项目中其他第三方库可能与LinPhone SDK存在依赖冲突,尤其是媒体处理或NDK相关库。通过./gradlew app:dependencies命令生成依赖树,排查并移除冲突依赖。

  • 调整SDK版本:若5.2.70版本存在已知兼容性问题,可尝试降级到5.2.x稳定版本(如5.2.60)或升级至最新5.3.x版本,验证问题是否解决。

内容的提问来源于stack exchange,提问作者Shakib Uz-Zaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 23:22:54