Génération de fichier d'en-tête avec JNI à l'aide de 'javah'
Je suis en train d'utiliser JNI pour une application Android à l'aide de la OpenCV4Android de la bibliothèque. Je peux générer un fichier d'en-tête sans l'aide de la bibliothèque opencv, mais j'obtiens une erreur à chaque fois que la classe des importations de quoi que ce soit. Je suppose qu'il doit lier à la bibliothèque, mais je ne suis pas sûr de savoir comment le faire? Je suis en utilisant cygwin sous Windows 8.1 64 bits de la machine.
sortie d'origine:
$ javah -jni -classpath ./bin/classes -d jni/ com.example.icam.nativeRDE
Error: Class org.opencv.core.Mat could not be found.
Après avoir suivi les conseils de: Android, de générer des jni Fichiers d'en-Tête avec javah , afficher le message d'erreur qui ne peut pas trouver org.opencv.de base.Mat, j'obtiens le résultat suivant:
$ javah -classpath /cygdrive/c/Users/Majid/Documents/OpenCV4Android/OpenCVLib2.4.8/bin/classes/org/opencv/;/cygdrive/c/Users/Majid/Documents/OpenCV4Android/iCam/bin/classes/com/example/icam/ -jni -d jni/ com.example.icam.nativeRDE
Error: no classes specified
-bash: /cygdrive/c/Users/Majid/Documents/OpenCV4Android/iCam/bin/classes/com/example/icam/: is a directory
J'ai essayé:
- de supprimer " /" après icam
- ajoutant nativeRDE après 'icam/'
- l'ajout d'nativeRDE.class après " icam/'
Merci pour toute aide.
J'ai essayé en suivant les conseils de ce thread, mais eu des erreurs. Je devrais l'ai mentionné qu'il est de mon post original, mais maintenant, j'ai édité.
avez-vous essayé
javah -classpath c:\Users\Majid\Documents\OpenCV4Android\OpenCVLib2.4.8\bin\classes\org\opencv;c:\Users\Majid\Documents\OpenCV4Android\iCam\bin\classes\com\example\icam -jni -d jni/ com.example.icam.nativeRDE
? Ou peut-être (je n'ai pas l'environnement prêt à vérifier), vous pouvez utiliser de l'avant (Unix) slash /. La raison en est que javah est une cygwin exécutable, donc il ne peut pas comprendre /cygdrive
. Vous l'avez déjà remarqué que vous avez besoin de ";" séparateur dans Windows, pas de ":" dans le référencés sujetOui, mais il n'était toujours pas de travail. Je pense avoir une solution, alors j'espère que doit être fine.
en général, vous n'avez pas besoin
javah
pour construire et exécuter vos JNI code sur Android.OriginalL'auteur user3019612 | 2014-02-09
Vous devez vous connecter pour publier un commentaire.
Javah prend un nom de classe entièrement qualifié, et classpath.
Nom de la classe doit être avec nom complet du paquet.
Ex:
fullPackageName.className
Chemin de classe est votre src dossier de pas de dossier bin
Votre chemin de classe doit être
c\Users\Majid\Documents\OpenCV4Android\iCam\src
Javah -jni -classpath
C:\ProjectName\src
com.abc.YourClassName
OriginalL'auteur ylmzekrm1223
Solution: Génération d'un fichier d'en-tête avec JNI à l'aide de 'javah'
JDK Emplacement est
JNI Emplacement du Dossier est
Classe d'Emplacement est
Android.jar l'emplacement est
Commande d'écriture sur coommand rapide/Terminal .h de création de fichier
Exemple de Commande ci-dessus en utilisant les détails de la Commande
OriginalL'auteur Pankaj Malviya
Vous pouvez même exécuter javah à partir d'eclipse avec beaucoup de simplicité.
J'ai essayé ces étapes ci-dessous et ils sont au travail, j'ai renvoyé le lien ci-dessous pour solution http://www.lithiumhead.com/notes/windows_jni
Guide étape par étape de
WorkSpaceEclipseJNI
com.lithiumhead.jni et sélectionnez Nouveau>Classe
HelloWorld.java
}
Les Configurations...
dossier (sera quelque chose comme C:\Program
Files\Java\jdk1.7.0\bin\javah.exe)
menu favoris
Projet De Construction D'
Générateur de fichier (Cela permet de générer le fichier d'en-tête pour le code C
com_lithiumhead_jni_HelloWorld.h placé dans le dossier bin de
01Java_HelloWorld Projet Java.)
OriginalL'auteur kunal