【问题标题】:Native armeabi libraries not being installed but they are in the APK未安装本机 armeabi 库,但它们位于 APK 中
【发布时间】:2021-04-13 20:44:40
【问题描述】:

我希望我没有重复任何其他帖子,但我找不到与我的案例类似的任何内容。 我正在使用他们的 PAX Neptune 服务为 Android 自动支付终端 (PAX A920) 创建一个依赖于 3rd 方本机库的服务。这些库仍然适用于已弃用的“armeabi”,但它们的演示应用程序运行良好。

现在,我已将这个原生库包含在 src/main/jniLibs/armeabi 下。我解压了构建的APK文件,并在lib/armeabi下找到了它们。

但是,当我安装 APK 时,它们不会像在演示应用中那样出现在设备上的 /data/app/com.mypackage.myservice/lib/arm 下。

这会导致我的服务在他们的 API 尝试加载库时崩溃。

我什至尝试添加

ndk {
    abiFilters "armeabi"
}

在 build.gradle 中,甚至在 gradle.properies 中添加 android.useDeprecatedNdk=true

不好。这些库在 APK 中可用,但不会安装在设备上。

检查演示应用程序代码,与我的配置没有什么不同,他们甚至没有使用 abiFilters 也没有使用 useDeprecatedNdk。

关于如何解决这个问题有什么建议吗?

编辑:谢谢亚历克斯。我将目录重命名为“armeabi-v7a”,它现在可以工作了!

亲切的问候

【问题讨论】:

  • 很可能,演示应用在清单中声明的​​targetSdkVersion 非常低。关键是 Android 平台基于这个数字应用了各种向后兼容的填充程序。很有信心,您只需将这些库移动到src/main/jniLibs/armeabi-v7a,APK 就会运行。但这仍然无法在 Play Store 上发布,因为它们需要 64 位库。
  • 非常感谢! @亚历克斯科恩。他们的目标是 28,这很奇怪。但是将目录重命名为“armeabi-v7a”确实有效!
  • 让我们关闭这个问题,以便其他用户更容易找到。

标签: android android-ndk


【解决方案1】:

您非常有信心,只需将这些库移动到 src/main/jniLibs/armeabi-v7a,APK 就可以运行。但这仍然无法在 Play Store 上发布,因为它们需要 64 位库。

【讨论】:

    猜你喜欢
    • 2013-12-14
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 2014-12-08
    • 2019-03-10
    相关资源
    最近更新 更多