请考虑以下几点:
minSdkVersion设置为16,因为这涵盖了99%以上的设备(1)。-D__ANDROID_API__设置)必须等于minSdkVersion (3)。我一直在做研究,想弄清楚这些东西是如何工作的--到目前为止,我大部分时间都在尝试获取依赖关系来构建,以便将我的C++库移植到安卓系统--所以如果我遗漏了一些非常明显的东西,请原谅我。但在我看来,以上所述表明,从2019年8月1日起,使用Android构建的应用程序必须达到API 21级的最低水平。这是正确的吗?
参考文献:
发布于 2019-02-04 15:47:07
在我的研究过程中,我想我找到了答案。如果这个答案是错的,请随意添加一个更好的答案。
64位体系结构的最低API级别为21,这是因为在此之前,Android根本不支持64位。.通过在构建脚本和/或makefile中使用条件,您可以将64位体系结构的API级别指定为21,对于32位架构,API级别仍然低至16。通过这种方式,您将满足谷歌的要求,并仍然提供与以前一样多的兼容性。下面是我自己的脚本中的一个片段:
case "${ABI}" in
armeabi-v7a | x86)
API_LEVEL=16
;;
arm64-v8a | x86_64)
API_LEVEL=21
;;
*)
echo >&2 "Invalid ABI ${ABI}"
exit 1
;;
esac发布于 2019-02-06 16:33:42
只需编译并包含您在apk中拥有的相同32位本机库的64位版本。让min版本像以前一样。
如果应用程序在API < 21上运行,它将不会看到64位的原生库,它将像以前一样与32位版本一起工作。在API 21+上,设备可能使用64位库(取决于CPU )。
Cmake将自动选择正确的ndk库,以便在minSdkVersion中与build.gradle链接,因此您不需要过多地关注构建过程的设置。
https://stackoverflow.com/questions/54519636
复制相似问题