web-dev-qa-db-fra.com

Studio Android; jni.h non trouvé

J'essaie de créer une application GStreamer utilisant Android Studio sous Windows à l'aide des didacticiels de leur site Web, mais, comme déjà mentionné dans d'autres questions, les didacticiels ne sont pas à jour et ne semblent pas fonctionner sous Android Studio. J'ai suivi le tutoriel proposé par Eduardo Fernando à l'adresse: Exemples Gstreamer dans Android Studio , mais cela ne se construira pas car je ne parviens pas à résoudre le problème du fichier jni.h introuvable.

> Build command failed.
Error while executing process 
C:\Users\spomerleau\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd with 
arguments {NDK_PROJECT_PATH=null 

APP_BUILD_SCRIPT=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\Android-tutorial-5\app\src\main\jni\Android.mk NDK_APPLICATION_MK=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\Android-tutorial-5\app\src\main\jni\Application.mk APP_ABI=arm64-v8a NDK_ALL_ABIS=arm64-v8a NDK_DEBUG=1 APP_PLATFORM=Android-21 NDK_OUT=C:/Users/spomerleau/Desktop/Android_GSTreamer/Premade_Test_tut5/Android-tutorial-5/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\Android-tutorial-5\app\build\intermediates\ndkBuild\debug\lib C:/Users/spomerleau/Desktop/Android_GSTreamer/Premade_Test_tut5/Android-tutorial-5/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libtutorial-5.so}
  GStreamer      : [GEN] => gst-build-arm64-v8a/gstreamer_Android.c
  GStreamer      : [COMPILE] => gst-build-arm64-v8a/gstreamer_Android.c
  gst-build-arm64-v8a/gstreamer_Android.c:1:10: fatal error: 'jni.h' file not found
  #include <jni.h>
           ^~~~~~~
  1 error generated.
  make: *** [gst-build-arm64-v8a/gstreamer_Android.o] Error 1

J'ai exécuté la commande javah, mais le fichier .h généré ne peut pas trouver le #include non plus. 

J'ai essayé la commande ndk-build, mais elle ne dira plus que le fichier jni.h est manquant. 

Des conseils sur la façon dont je pourrais lier le fichier jni.h au projet? 

15
sebseb24

Ceci est potentiellement un problème avec les modifications r16 dans le NDK Android qui sont corrigées en amont par le message commit

Le problème est que le NDK a déplacé les fichiers d’en-tête dans une structure unifiée et a ainsi cassé tout en-tête attendu par un utilisateur dans les anciens emplacements.

6
ystreet00

Ceci est dû à la mise à jour/l’installation d’Android Studio sur NDK_r16, qui rend obsolète la prise en charge de GCC. Essayez de revenir à NDK_r15c.

Téléchargez r15c à partir de https://developer.Android.com/ndk/downloads/older_releases.html , puis pointez l'emplacement NDK de l'application dans le dossier extrait.

2

jni.h est un fichier d'en-tête déjà présent dans le paquet Android ndk. S'il n'est pas présent, vous pouvez soit réinstaller le paquet, soit vous pouvez rechercher sur le Web le fichier source que vous pouvez obtenir très facilement et placer ce fichier à l'emplacement prévu par votre compilateur.

0
Valgrind1691