0

我尝试使用liblinphone来自 linphone 网站的 '.so' 文件与 android studio 一起使用,我自己使用 ndk 9、10、11、12 版本构建了它。总是与x86_64平台错误出现在android监视器中:

04-27 02:37:01.404 13883-13883/? I/LinphoneCoreFactoryImpl: Trying to load liblinphone for x86_64
04-27 02:37:01.410 13883-13883/? W/LinphoneCoreFactoryImpl: Unable to load optional library libffmpeg-linphone-x86_64
04-27 02:37:01.411 13883-13883/? I/LinphoneCoreFactoryImpl: Trying to load liblinphone for x86
04-27 02:37:01.414 13883-13883/? W/LinphoneCoreFactoryImpl: Unable to load optional library libffmpeg-linphone-x86
04-27 02:37:01.417 13883-13883/? D/AndroidRuntime: Shutting down VM

如果我安装 linphone 应用程序,它适用于 platform x86_64。请帮忙,我能做错什么吗?

4

1 回答 1

1

我有类似的arm64架构问题,我使用下面提到的解决方案解决了这个问题。

到目前为止,我发现的最佳解决方案(并被警告:这是一个讨厌的 hack)是简单地从您的 APK 中排除所有 64 位二进制文​​件。如果没有找到 64 位依赖项,Android 将愉快地加载所有.sos 的 32 位回退版本并正常工作,假设您不依赖任何 64 位特定功能。要在您的项目中实现此功能,请执行以下步骤:

  1. 在您gradle.properties的项目根目录中,添加该行

    android.useDeprecatedNdk=true.
    
  2. 将以下块添加到您的build.gradle文件中,为每个 64 位依赖项添加一个排除行:

    android {
    ...
    defaultConfig {
    ...
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
    
    packagingOptions {
        exclude "lib/arm64-v8a/librealm-jni.so"
        }
      }
    }
    

完成后,请务必使用新配置生成 APK,并在 ARM64 设备上对其进行测试。

此解决方案的来源

于 2016-05-25T11:37:23.557 回答