我有一个Android项目,我们一直在使用实验Gradle插件一段时间。与Android工作室3被公布,并迁移到摇篮4,我有几个问题Android实验gradle插件&Android Studio 3
在刚刚看没人加在几个月的新的实验gradle这个版本,最后的版本11个字母是3个月前。这是否仍然维持?
有没有更好的方法来做复杂的NDK构建,然后是实验性的Gradle插件?我做了一些研究,它看起来就像是有办法有一个CMake的txt文件,并调用,因为他们与这个Samba客户 https://github.com/google/samba-documents-provider/tree/master/app
,当我说复杂NDK建立这样做,我有一些C++库我拉在一起。我有一堆自定义C++代码,我有几个第三方库有自己的代码以及共享库。我有许多jni接口文件来管理这一切。
我缩短了这个例子,但我有12个这样的文件。
model {
// this repositories section defines our list of external shared libraries
// included here are all nuance libs and python 3.5
repositories {
libs(PrebuiltLibraries) {
lib1 {
binaries.withType(SharedLibraryBinary) {
sharedLibraryFile = file("src/main/jniLibs/${targetPlatform.getName()}/lib1.so")
}
}
lib2{
binaries.withType(SharedLibraryBinary) {
sharedLibraryFile = file("src/main/jniLibs/${targetPlatform.getName()}/lib2.so")
}
}
}
}
然后我有一个NDK部分
// defines the NDK build
ndk {
moduleName "myApp"
toolchain = "clang"
// We set the platform for the NDK. with the a certain device we were getting missing libraries without it
// https://github.com/android-ndk/ndk/issues/126
platformVersion="23"
// If switching to GNU, here are the values to replace with
stl "gnustl_shared"
CFlags.addAll(["-DNDEBUG"])
cppFlags.addAll(["-fexceptions", "-std=gnu++11"])
// when adding system library dependencies, they are added here
ldLibs.addAll(["log","atomic"])
// C include directories
CFlags.addAll(["-I${file("src/main/jni/lib1/inc")}".toString(),
"-I${file("src/main/jni/lib2")}".toString()
])
// C++ include directories
cppFlags.addAll(["-I${file("src/main/jni/lib1/inc")}".toString(),
"-I${file("src/main/jni/lib1")}".toString(),
"-I${file("src/main/jni/lib2")}".toString(),
"-I${file("src/main/jni/lib2/os")}".toString(),
"-I${file("src/main/jni")}".toString()
])
}
`
也在gradle这个我列出我所有的JNI来源
// this section is to list the NDK static/shared library dependencies
// these dependencies are defined in detail above in the repositories section
sources {
main {
jni {
dependencies {
library "lib1"
library "lib2"
library "lib3"
library "lib4"
library "lib5"
library "lib6"
library "lib7"
library "lib8"
library "lib9"
library "lib10"
library "lib11"
library "lib12"
}
}
}
}