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

时间:2017-08-03 18:48:07

标签: android c++ android-ndk

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

1 个答案:

答案 0 :(得分:4)

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

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