Gradle NDK angeben, eine include-Direktive in den generierten Android.mk
Wenn Sie
android {
defaultConfig {
ndk {
moduleName "yourlib"
stl "stlport_static"
ldLibs "log", "z", "m"
cFlags "-I/some/include/dir/"
}
...
}
...
}
in deinem build.gradle dann Gradle kompilieren der Dateien in src/main/jni/und es erzeugt ein Android.mk build/ndk/debug/Android.mk.
Jedoch, in meinem Fall, ich versuche zu kompilieren, einige C++ - Dateien kompiliert OpenCV.
Habe ich diese zu arbeiten, wenn ich manuell die Android.mk-Datei, und führen Sie das ndk-build-Befehl. Aber ich will es tun, über Gradle /Android Studio automatisch.
Wenn das manuell zu erledigen, habe ich auch die Bibliotheken zu linken. Ich Tue dies, in der manuell erstellten Android.mk, mit der Zeile:
include /path/to/the/opencv/directory/sdk/native/jni/OpenCV.mk
Jedoch in den Android-Gradle-plugin, ich bin nicht sicher, wie Sie diesen "include" - Direktive in der generierten Android.mk-Datei.
Kann jemand mich in die richtige Gradle-Richtlinie Richtung fügen Sie diese Zeile zu der Datei generieren"? Danke.
- Hinweis syntax-änderungen in Gradle 2.5 wird cFlags CFlags und ldLibs "log" wird ldLibs += "log"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich gefunden, dass der build-Prozess zieht sich alles in die von unten der ./src/main/jni-Ordner. So, ich habe symlinks gibt es auch, und src Ordner woanders - die src-Dateien aufgelistet werden, die in der .mk-Datei, die durch den build-Prozess und die inc-Dateien werden geschöpft, indem der compiler. Vielleicht ein bisschen hacky:
Ich habe auch verschiedene cFlags je nach debug-build. Dies scheint gültig zu sein gradle, aber nicht wollen, zu bauen, die mit android-studio. Es baut mit dem Befehl gradlew tho:
Ich hoffe es hilft dir (android-studio 0.8.6).
cFlags
aber es funktioniert nicht. Mein Beitrag ist stackoverflow.com/questions/34593133/...CFlags.add("-I${file("src/main/jni/inc")}".toString())
dient dem gleichen Zweck und Android Studio ist glücklich mit ihm. Beachten Sie, dasscFlags
geändertCFlags
irgendwann. Auch in meiner tatsächlichen Nutzung Fall war es nichtCFlags
das war relevant, abercppFlags
.