我有一组用API 19和NDK rev 17的独立工具链编译的C/C++库,是否可以在使用API 26(最小SDK目标19)的项目中使用这些库?还是我需要使用API 26重新编译它们?
在脚本中,make_standalone_toolchain.py要求提供–api参数,但是我不确定这是否应为项目中使用的最低API或目标API.
解决方法:
is it be possible to use these libraries on a project that uses API 26 (min SDK target 19)?
是的,有可能,但是可能并不理想.从下面的android-ndk-r17c / platforms结构中可以看出:
android-ndk-r17c包含您的项目最低API级别19,并且此API级别仅包含两种架构,即arm和x86.这意味着您的所有编译将分别引用并链接到arch-arm或arch-x86内部的那些库.请注意,它们是32位ABI.将来,如果您必须包括64位ABI,例如x86_64或arm64,我认为您至少需要使用–api 21重新编译本机代码(因为api 21之后,NDK开始支持64位ABI).
如果使用有问题的本机共享库的android项目是使用minSdkVersion 21或更高版本21编译的,我建议您使用带有–api 21的独立工具链来编译本机代码.因为没有设置–api 19的附加值.
参考文献:
标签:android,android-ndk
来源: https://codeday.me/bug/20191013/1910483.html