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.

double possible de Android, générer de la jni Fichiers d'en-Tête avec javah , afficher le message d'erreur qui ne peut pas trouver org.opencv.de base.Tapis
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 sujet
Oui, 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