不可能在Android Studio下创建具有64位库的APK



我需要更新Play商店中的现有应用程序。出于这个原因,自 8 月以来,谷歌也要求提供 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 真 } }

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

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

请注意,编译过程不会显示任何错误消息。

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

如何确定未生成 64 位版本的原因?

我使用的是 Android Studio for 3.5。


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

感谢您的帮助。

我遇到了同样的问题,我已经将 2 年前的一个项目转换为最新的 Android Studio,现在我需要生成 64 位,但 APK 构建和捆绑包不会生成 64 位输出。

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

app/src/main/jniLibs(这个有/armeabi/armeabi-v7a/x86 subdirs(

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

如何确定为什么未生成 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 端口端口 32 移植到 64 你可以在 gradle 上做正确的步骤,但不是在代码中。 如果您不提供样本,我不能再说什么了 Android Studio 没有什么可抱怨的,如果你将代码保持在 32 并尝试构建到 64,它只是让你的 64 文件夹构建结果为空,作为我第一个响应的一个点

我希望这对:)有所帮助

最新更新