Android 为NDK构建指定目标体系结构

Android 为NDK构建指定目标体系结构,android,c++,android-ndk,Android,C++,Android Ndk,我正在尝试使用NDK构建一个包含本机代码的Android应用程序。我使用cmake,因为它似乎是本机代码的首选构建系统。链接过程中生成失败,对于我链接的预构建库,我收到以下消息:“添加符号时出错:文件格式错误”。看看正在使用的工具链,它使用的是mips64el-linux-android-4.9。在库上调用objdump会将格式显示为“文件格式elf64-x86-64”,这正是我想要的。我如何告诉Android Studio为x86_64构建应用程序,以便它使用正确的工具链?我尝试将以下内容添加

我正在尝试使用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"
    }
}

经过更多的实验,我能够通过向我的构建类型添加一个带有abiFilters属性的ndk块来实现这一点。例如:

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

您还可以使用
android{defaultConfig{ndk{abiFilters
一次为所有生成类型设置它: