到目前为止,我在使用NDK和Android Studio进行了尝试,我编写了Java Wrapper,生成了头文件,并在JNI文件夹中的相应c ++文件中填写了一些函数。
我现在要做的就是进行简单的构建,以便我可以验证一切正常。我的项目依赖于我整个android项目之外的一些c ++源文件。我是否会在Android中以某种方式构建这些源文件?我如何访问它们?我有什么需要从Gradle做的吗?
我建立跨多个来源的项目非常新,所以我不知道该怎么做。如果问题没有意义,请道歉。非常感谢任何帮助(:
答案 0 :(得分:4)
http://ph0b.com/android-studio-gradle-and-ndk-integration/
用户ph0b在NDK上有很多SO帖子。
在subj(AS + NDK)上阅读此人的各种帖子
IMO - 您可以从用于eclipse / NDK安卓项目和AS 0.8的src目录中关注策略'import NDK proj'。+将通过正常的“文件/导入项目”对话框几乎可以获得所有方式。
完成AS导入后,NDK内容将位于:
<强> ./根/模块/ SRC /主/ JNI 强>
Java包将在
<强> ./根/模块/ SRC /主/ JAVA 强>
验证导入到AS 是否对您输入到导入过程的“Android.mk”文件执行自动更新,因为您将需要它而不是任何自动生成的文件来自AS。
在AS gradle.build文件中......
确保
buildToolsVersion“19.1.0”
并按照之前的链接添加以下内容:
ndk {
moduleName "audioboo-ogg"
}
}
flavorDimensions "abi"
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
}
}
sourceSets {
main {
jni.srcDirs = [] /*disable automatic ndk-build call */
}
}
task ndkBuild(type: Exec) {
commandLine '$NDK_HOME/android-ndk-r9[a-z]/ndk-build', '-C', file('src/main/jni').absolutePath
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
然后您可以选择在jni文件夹中进行CLI NDK构建,或者只使用gradle集成构建,该构建将使用gradle文件中的“ndkBuild”任务。