【问题标题】:liblinphone android x86_64 ffmpeg unable to loadliblinphone android x86_64 ffmpeg 无法加载
【发布时间】:2016-04-27 10:24:06
【问题描述】:

我尝试使用 linphone 网站上的“.so”文件将liblinphone 与 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 应用程序,它适用于平台 x86_64。 请帮忙解决一下,我能做错什么吗?

【问题讨论】:

    标签: android ffmpeg android-ndk x86-64 linphone-sdk


    【解决方案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 设备上对其进行测试。

    Source of this solution.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多