【发布时间】:2018-09-17 17:52:06
【问题描述】:
我曾经构建过 api 级别 19 的 arm64-v8a 库,使用 android.toolchain.cmake 自带 Android NDK r16b 这样的。
${CMAKE} \
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
-DANDROID_NDK=$ANDROID_NDK_HOME \
-DANDROID_ABI="arm64-v8a" \
-DANDROID_NATIVE_API_LEVEL="android-19" \
-DANDROID_STL="c++_shared" \
-DANDROID_CPP_FEATURES="rtti exceptions" \
..
现在我想打包我的 lib 使用 conan 交叉编译 android lib 使用独立工具链。使用--arch arm64 和--api 19 制作独立工具链似乎是不可能的,因为以下命令
./make_standalone_toolchain.py --arch=arm64 --api=19 --stl=libc++ --install-dir=./test
将失败并显示错误消息:
19 小于 arm64 (21) 的最小平台
有没有办法解决这个问题?
【问题讨论】:
-
api 21 有什么问题?你有使用 KitKat 的 arm64 设备吗?
-
感谢您的帮助。不,我没有带有 KitKat 的 arm64 设备。我必须同时支持 armv7a KitKat 设备和 arm64 LOLLIPOP 设备,我想将
minSdkVersion设置为 19。 -
所以你需要两个独立的工具链。将 armv7a 设置为 api=19 和 arm64 设置为 api=21 应该没问题。
标签: cmake android-ndk arm64 android-api-levels conan