Ich habe ein Android-Projekt und wir haben das experimentelle Gradle-Plugin für einige Zeit verwendet. mit Android Studio 3 und der Umzug in Gradle 4 angekündigt, habe ich ein paarAndroid Experimental Gradle Plugin & Android Studio 3
FragenIn gerade auf der Suche niemand ein neues experimentelles gradle Release in ein paar Monate hinzugefügt, und die letzte Version 11 alpha ist vor 3 Monaten. Wird das noch aufrechterhalten?
Gibt es eine bessere Möglichkeit, komplizierte NDK-Builds als das experimentelle Gradle-Plugin zu erstellen? Ich habe ein wenig Forschung und es sieht aus wie es eine Möglichkeit, eine cAchten TXT-Datei zu haben ist, und zu rufen, dass, wie sie mit diesem Samba-Client https://github.com/google/samba-documents-provider/tree/master/app
Wenn ich sage kompliziert NDK bauen, ich habe eine Reihe von C++ Bibliotheken, die ich zusammen ziehe. Ich habe eine Reihe von benutzerdefinierten C++ - Code, ich habe ein paar Bibliotheken von Drittanbietern, die ihren eigenen Code sowie gemeinsame Bibliotheken haben. Und ich habe eine Reihe von jni Interface-Dateien, um alles zu verwalten.
Ich habe dieses Beispiel gekürzt, aber ich habe 12 so Dateien.
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")
}
}
}
}
ich dann den folgenden für einen NDK Abschnitt
// 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()
])
}
`
dann auch in der gradle ich alle meine jni Quellen
Liste haben// 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"
}
}
}
}