指定 NDK 构建的目标架构

Specifying target architecture for NDK build

本文关键字:目标 NDK 构建 指定      更新时间:2023-10-16

我正在尝试使用NDK构建一个包含本机代码的Android应用程序。我正在使用 cmake,因为它似乎是本机代码的首选构建系统。构建在链接期间失败,我收到以下消息,表示我链接的预构建库:"添加符号时出错:文件格式错误"。看看正在使用的工具链,它使用的是mips64el-linux-android-4.9。在库上调用 objdump 将显示格式为"文件格式 elf64-x86-64",这就是我想要的。如何告诉 Android Studio 为x86_64构建应用程序,以便它使用正确的工具链?我尝试将以下内容添加到我的应用程序的build.gradle文件中,但这并没有改变任何东西:

splits {
abi {
enable true
reset()
include "x86_64"
}
}

经过更多的实验,我能够通过向我的buildType添加一个带有abiFilters属性的ndk块来使其工作。例如:

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
abiFilters "x86_64"
}
}
debug {
ndk {
abiFilters "x86_64"
}
}
}