Android Studio 2.2预览1 有一个新的外部ndk构建功能,但是从官方博客帖子中显示的app/build.gradle
代码段,它根本不清楚如何设置额外的ndk构建Application.mk
文件通常包含
我可以通过Android.mk
设置externalNativeBuild
ndk构建文件,但是如何设置所需的Application.mk
变量?
我的Application.mk
包含:
NDK_TOOLCHAIN_VERSION := clang
APP_PLATFORM := android-16
APP_ABI := armeabi
APP_STL := c++_static
APP_CPPFLAGS += -std=c++11
答案 0 :(得分:10)
dplyr
如果可能的话,我建议迁移到CMake构建系统,因为在Android Studio中有更好的C ++代码编辑器和调试集成。您可以在此处找到有关gradle插件配置的更多信息: https://sites.google.com/a/android.com/tools/tech-docs/external-c-builds
修改强>
在Android Studio 2.2预览版5中,您必须在defaultConfig {
ndkBuild {
arguments "NDK_APPLICATION_MK:=Application.mk"
cFlags "-DTEST_C_FLAG1" "-DTEST_C_FLAG2"
cppFlags "-DTEST_CPP_FLAG2" "-DTEST_CPP_FLAG2"
abiFilters "armeabi-v7a", "armeabi"
}
}
组下包装cmake
和ndkBuild
组:
externalNativeBuild
编辑2:由于构建工具中存在错误,defaultConfig {
externalNativeBuild {
ndkBuild {
targets "target1", "target2"
arguments "NDK_APPLICATION_MK:=Application.mk"
cFlags "-DTEST_C_FLAG1", "-DTEST_C_FLAG2"
cppFlags "-DTEST_CPP_FLAG2", "-DTEST_CPP_FLAG2"
abiFilters "armeabi-v7a", "armeabi"
}
}
}
组下的ndkBuild
包裹似乎不起作用。
答案 1 :(得分:1)
android {
...
defaultConfig {...}
buildTypes {...}
// Encapsulates your external native build configurations.
externalNativeBuild {
// Encapsulates your CMake build configurations.
cmake {
// Provides a relative path to your CMake build script.
path "CMakeLists.txt"
}
}
}
注意:如果要将Gradle链接到现有的ndk-build项目,请使用ndkBuild {}块而不是cmake {},并提供Android.mk文件的相对路径。 Gradle还包含Application.mk文件(如果它与Android.mk文件位于同一目录中。)