2017-08-03 93 views
2

我试图建立一个Android应用程序包含使用NDK本地代码。我使用cmake,因为这似乎是本地代码的首选构建系统。在链接过程中构建失败,并且我收到以下链接的预建库的消息:“添加符号时出错:文件格式错误”。看着正在使用的工具链,它使用mips64el-linux-android-4.9。在库上调用objdump显示格式为“文件格式elf64-x86-64”,这是我想要的。如何告诉Android Studio为x86_64构建应用程序,以便它使用正确的工具链?我尝试添加下面为我的应用程序的build.gradle文件,但是这并没有改变什么:的NDK指定目标架构建立

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

的可能的复制[摇篮构建NDK只针对ARM(https://stackoverflow.com/questions/33278152/gradle-build-ndk-target-only-arm) –

回答

3

归因于更多的尝试,我能够得到这个通过与abiFilters添加NDK块工作后我的buildTypes。例如:

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

您还可以使用'Android版{ defaultConfig { NDK { abiFilters'可以一次设定所有内置类型:https://stackoverflow.com/a/47558314/895245 –