2016-07-26 84 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