【问题标题】:Impossible to create APK with 64 bits lib under Android Studio无法在 Android Studio 下创建 64 位库的 APK
【发布时间】: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 版本的库。

感谢您的帮助。

【问题讨论】:

    标签: android android-studio 32bit-64bit android-ffmpeg


    【解决方案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 位版本。请参阅上面的描述,我在其中添加了一些解释。
      猜你喜欢
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多