安卓NDK : How to build for ARM64-v8a with minimumSdkVersion = 19

标签 android c++ gradle android-ndk abi

我有一个 Android 库项目,它通过 Android NDK 在 C/C++ 中有一部分。我想为所有架构构建我的 native 代码。如果我将 minSdkVersion 设置为 21,一切正常。但如果我将 minSdkVersion 设置为 19,则我需要较低的 minSdkVersion(SDK 19),因为未构建 ARM64-v8a 版本。我知道没有运行 SDK 19 的 ARM64-v8a 设备。我怎样才能在一个 APK 中构建所有平台并拥有 minSdkVersion 19?

最佳答案

实际上,“minimumSdkVersion”有错别字。右边的属性是“minSdkVersion”。

但是,arm64-v8a 库应该成功为 API 19 构建,因为 NDK 构建脚本会自动获取正确的平台头文件和库集。

如果您正在使用 Gradle 构建脚本,请尝试将其设置为目标 ABI 之一:

ndk { abiFilters 'arm64-v8a', 'armeabi-v7a'

然后,为原生构建显式设置目标平台。
如果您使用 CMake,则在 gradle 脚本中设置:

externalNativeBuild { 制作{ 参数 '-DANDROID_PLATFORM=android-19' }

如果您使用 ndk-build,那么在您的 Application.mk 中设置:

APP_PLATFORM := android-19


我希望这有帮助。如果无法构建,请写下详细信息。

关于安卓NDK : How to build for ARM64-v8a with minimumSdkVersion = 19,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41102128/

相关文章:

Android EditText OnClickListener 问题

android - 什么时候应该使用 GCM 设备组与主题?

c++ - 在用 C++ 编程时,向您的合作程序员展示某些方法尚未在类中实现的方法

C++跨平台查找数据目录的解决方案

android - 尝试在Android Studio中创建新项目时发生Gradle错误

android - Gradle 和多项目结构

android - 是否可以从其他 View (与我的seekBar不同)启动seekBar OnSeekBarChangeListener?

android - 使用 ActionBarSherlock 的 ActionBar 中 SearchView 的文本颜色

c++ - 我可以使用结构化绑定(bind)和 for-each 循环来迭代几个 “packed-together” 值吗?

android - 跨 Gradle 模块使用 Dagger Multibinding