2017-08-03 43 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 –