无法在 Android Studio 下创建 64 位库的 APK

Posted

技术标签:

【中文标题】无法在 Android Studio 下创建 64 位库的 APK【英文标题】:Impossible to create APK with 64 bits lib under Android Studio 【发布时间】:2020-02-01 23:58:19 【问题描述】:

我需要更新 Play 商店中的现有应用。为此,自 8 月起,Google 已要求提供 64 位版本。

我已包含 build.gradle 应用程序中提供的说明,如下所示:

compileSdkVersion 28
defaultConfig 
    applicationId "com..."
    minSdkVersion 24
    targetSdkVersion 28
    versionCode 10
    versionName "1.5"
    multiDexEnabled true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    ndk 
        abiFilters 'arm64-v8a','x86_64','armeabi-v7a','x86'
    

和:

拆分 阿比 启用真 重置() 包括“arm64-v8a”、“x86_64”、“armeabi-v7a”、“x86” 通用Apk true

我能够按预期生成 APK,但不幸的是 arm64-v8a 和 x86_64 版本都不包含任何 64 位代码。

Android Studio中分析APK时没有lib目录,而APK armeabi-v7a包含lib/libarm_arch.so。

注意编译过程不会显示错误信息。

依赖项会导致此问题吗?为什么 Android Studio 不能显示错误消息?

如何确定为什么没有生成 64 位版本?

我正在使用 Android Studio 3.5。


搜索 libarm_arch.so 库后,我发现它与 FFMPEG 相关联。但是我的 Gradle 依赖项中没有引用 FFMPEG,我还没有找到如何告诉 Android Studio 也嵌入 arm68-v8a 版本的库。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我也遇到了同样的问题,我把2年前的一个项目转成最新的Android Studio,现在我需要生成64位,但是APK构建和Bundle不生成64位输出。

我发现我有一个导致这种不兼容的目录:

app/src/main/jniLibs(这个有 /armeabi /armeabi-v7a /x86 子目录)

我通过删除目录 jniLibs 来修复它。

【讨论】:

【参考方案2】:

如何确定为什么没有生成 64 位版本?

来自https://developer.android.com/distribute/best-practices/develop/64-bit#64-bit-libraries

In a typical case, an APK or bundle that's built for both 32-bit and 64-bit architectures will have folders for both ABIs, each with a corresponding set of native libraries. If there's no support for 64-bit, you'll likely see a 32-bit ABI folder but *not a 64-bit folder*.

编辑: 如果您只阅读了一个相同的链接 https://developer.android.com/distribute/best-practices/develop/64-bit#port-32-to-64 您将确认您是否真的对代码进行了任何更改,以便能够将 32 端口移植到 64 你可能在 gradle 上做正确的一步,但不是在代码中。 如果你不提供样品,我不能再说什么 如果您将代码保持在 32 并尝试构建到 64,Android Studio 没有什么可抱怨的,它只是让您的 64 文件夹构建结果为空,作为我第一次回复的一点

希望对你有帮助:)

【讨论】:

感谢您对我的问题感兴趣,但问题不是关于如何识别我的 apk 不兼容 64 位,而是关于为什么 Android Studio 无法生成 64 位版本。请参阅上面的描述,我在其中添加了一些解释。

以上是关于无法在 Android Studio 下创建 64 位库的 APK的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio不会将x86_64显示为任何虚拟设备的选项

Android studio 3.1.3创建新项目,c ++支持同步失败

Android Studio 出错:无法在模拟器中启动 AVD

我无法安装/启动适用于 Windows 7 64 位的 Android Studio [重复]

我无法在 Android Studio 中看到 AVD 管理器

Android Studio操作/问题积累