Gradle NDK pour spécifier un "include" directive généré Android.mk
Lorsque vous avez
android {
defaultConfig {
ndk {
moduleName "yourlib"
stl "stlport_static"
ldLibs "log", "z", "m"
cFlags "-I/some/include/dir/"
}
...
}
...
}
dans votre construction.gradle puis Gradle de compiler les fichiers dans le répertoire src/main/jni/et il va générer un Android.mk dans build/ndk/debug/Android.mk.
Cependant, dans mon cas, je suis en train de compiler des fichiers C++ compilé avec OpenCV.
J'ai ce travail quand j'ai créer manuellement le Android.mk fichier et exécutez le ndk-build commande. Mais je veux le faire via Gradle /Android Studio automatiquement.
Quand le faire manuellement, je inclure les bibliothèques de lien contre. Je fais ceci, dans le créé manuellement Android.mk, avec la ligne:
include /path/to/the/opencv/directory/sdk/native/jni/OpenCV.mk
Cependant, dans Android plugin Gradle, je ne suis pas sûr de la façon d'ajouter cette directive 'include' dans le générés Android.mk fichier.
Quelqu'un peut me pointer dans la bonne Gradle-directive de la direction pour ajouter cette ligne à la générer le fichier? Merci.
OriginalL'auteur newfivefour | 2014-05-29
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé que le processus de création de tirer tout en de ci-dessous ./src/main/jni dossier. Donc, j'ai placé des liens symboliques de là à inclure et la src dossiers d'ailleurs - à la src fichiers seront énumérés dans le .mk fichier par le processus de construction et les fichiers inc sera ramassé par le compilateur. Peut-être un peu hacky:
J'ai aussi différentes cFlags en fonction debug. Cela semble être valide gradle, mais ne veulent pas construire avec android studio. Il va construire avec le gradlew commande tho:
J'espère que cela peut vous aider (android-studio 0.8.6).
cFlags
mais ça ne fonctionne pas. Mon post est-ce un stackoverflow.com/questions/34593133/...C'est seulement une légère variation sur votre réponse, donc je ne veux pas le publier séparément, mais
CFlags.add("-I${file("src/main/jni/inc")}".toString())
sert le même but et Android Studio est heureux avec elle. Notez quecFlags
changé àCFlags
à un certain point. Aussi, à mon utilisation réelle cas où il n'était pasCFlags
qui est pertinente, maiscppFlags
.OriginalL'auteur