无法在 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 [重复]