我怎样才能在项目文件树的编译和视图中包含一些位于项目目录之外的.h和.cpp文件?
使用Visual Studio和C项目,您只需使用“添加现有项目”,选择您的文件并vo,它只需十秒钟即可完成.基于Android的开发是否应该让开发人员的生活更轻松? :/
我一直在寻找数小时如何做到这一点.我找到的答案都没有解决这个问题.
我无法相信,在所有使用Android Studio和NDK的人中,没有人使用过jni文件夹之外的C代码……
你知道怎么办?谢谢.
最佳答案
这就是我所做的.首先安装今天发布的最新Android Studio 1.4(但我使用ndk支持进行了首次1.3预览).
要获得NDK支持,您需要切换到Gradle 2.5(项目结构 – >项目 – > Gradle版本).使用实验gradle-plugin(在main build.gradle中“classpath’com.android.tools.build:gradle-experimental:0.2.0’”).
要获得NDK支持,您需要切换到Gradle 2.5(项目结构 – >项目 – > Gradle版本).使用实验gradle-plugin(在main build.gradle中“classpath’com.android.tools.build:gradle-experimental:0.2.0’”).
然后,您需要将应用build.gradle文件更新为新格式,如下所述:http://tools.android.com/tech-docs/new-build-system/gradle-experimental
我的项目包括一个静态库和动态库.不幸的是,这不受支持,您现在必须将其编译为一个动态库.不支持自定义makefile.
这是棘手的部分,你需要把它放在模型{}中
android.ndk {
moduleName = "NativeLib"
// toolchain = "clang" <- tried using it,but Failed
// toolchainVersion = "3.5"
stl = "gnustl_static" // you can switch stl lib this way
ldLibs += "log"
cppFlags += "-g"
cppFlags += "-std=c++11" // use c++11
cppFlags += "-Wall"
cppFlags += "-I${file("../../../common/include")}".toString() // include folder
}
android.sources {
main {
jni {
source {
srcDirs = ['src/main/jni','../../../common']
}
}
}
}
如果您的本机源文件位于其他位置,则可以更改路径 – 这来自我的项目结构.