2016-07-26 79 views
2

我想用一個Android.mk設置一個使用新的externalNativeBuild的NDK項目,但是當我編譯時我得到了不同的結果在命令行中與通過Android Studio進行比較。我正在嘗試確認Android Studio正在使用哪個工具鏈,但無法知道如何使用新語法指定它。Android NDK:與Android Studio 2.2,Gradle和externalNativeBuild + Android.mk的鏗鏘工具鏈

到目前爲止,我已經加入NDK_TOOLCHAIN_VERSION := clang我Application.mk

如果我重新命名的應用程序/ src目錄/主/ CPP - >應用程序/ src目錄/主/ JNI和運行在命令行上NDK-建設,我按預期方式編譯靜態庫和共享庫。

但是,在那裏指定NDK_TOOLCHAIN_VERSION時,Android Studio中的項目視圖會顯示靜態庫中每個源文件的目標文件。

我目前在Windows 10使用Android Studio 2.2中預覽6.

我應該指定此別處?

+0

可以嘗試這裏的樣本之一,看看你得到了類似的事情:https://github.com/googlesamples/android-ndk/tree/master/other-builds/ndkbuild?在構建命令行之後,在使用android studio重新構建之前,請運行rmdir/S/Q your-proj/app/.externalNativeBuild以刪除所有緩存值。如果你的application.mk和android.mk在同一個目錄中,默認情況下它們將被使用 – Gerry

回答

0

我相信它應該在build.gradle中指定,因爲Application.mk中的標誌顯然被忽略(至少在此刻)。

defaultConfig { 
    externalNativeBuild { 
     ndkBuild { 
      arguments "-DNDK_TOOLCHAIN_VERSION=clang" 
     } 
    } 
} 
+0

Application.mk中的標誌只要與Android.mk位於同一個目錄中就可以使用;否則需要在模塊build.gradle中的參數行上指定Application.mk的路徑 – Gerry