liblinphone android x86_64 FFMPEG 无法加载



我尝试使用来自linphone网站的".so"文件将liblinphone与android工作室一起使用,我自己用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应用程序,它适用于平台x86_64。请帮忙,我能做错什么?

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

到目前为止,我找到的最佳解决方案(请注意:这是一个令人讨厌的黑客)是简单地从APK中排除所有64位二进制文件。如果没有找到 64 位依赖项,Android 将很乐意加载所有.so的 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设备上对其进行测试。

此解决方案的来源。

最新更新