【发布时间】:2019-08-05 12:14:40
【问题描述】:
在关注了 google 关于如何使 android 应用程序符合 64 位的文档here 之后,我一直在尝试构建的 android 应用程序包仍然不符合 64 位。
android studio 项目包含不同的模块(应用程序),它们有自己的 build.gradle 文件,但所有应用程序都有一个通用的 build.gradle(Module:app) 和 build.gradle 项目级别。 在一般的 build.gradle(Module:app) 我添加了以下内容:
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
按照谷歌文档的默认配置。 我还尝试将相同的代码添加到应用程序的 build.gradle(Module:app) 并构建了应用程序包,这是 lib 文件的样子
gradle 不会生成使应用程序兼容 64 位所需的 x86_64 和 arm64-v8a 文件。例如,我尝试了将 abifilters 放置在何处的不同组合,仅将其添加到根 build.gradle,仅将其添加到应用程序的 build.gradle 并且在两者上都有 abifilters,但它不会构建 64 位支持库。
该应用程序是用 java 构建的,我可以通过添加以下内容来构建一个 64 位应用程序包:
ndk {
abiFilters 'arm64-v8a', 'x86_64'
}
然后分析了捆绑包,它没有 lib 文件夹,谷歌开发者控制台警告消失了,但是我怎样才能为这种情况构建 64 位和 32 位支持库?
【问题讨论】:
-
您的问题解决了吗?请与我们分享
-
是的,我发现了问题所在,android studio 项目有一个“jnilibs”目录,其中包含“x86”、“mips”、“armeabi-v7a”子文件夹。 “jnilibs”负责本地库。因此我删除了这个文件夹,因为应用程序是用 java 构建的,所以应用程序变得兼容 64 位。所以我的理解是,如果应用程序有本地库,并且如果你有它的源代码,你可以编译它,以便它可以有 64 位版本。否则,对于我的情况,它没有被使用,所以我删除了该文件夹并且它起作用了。希望这对您有所帮助。
标签: java android kotlin 64-bit