java.lang.IllegalArgumentException: Δεν είναι έγκυρο όνομα κλάσης: ANDROID NDK javah

Paul Asiimwe 08/22/2017. 6 answers, 9.039 views
android-ndk android-ndk jni adt

Im μαθαίνοντας να κωδικοποιήσω το Android στο NDK στο Eclipse του WINDOWS .... ακολουθώντας ένα Βιβλίο Εκμάθησης από τον Sylvain Ratabouil. Έτσι im στη Run | Εξωτερικά εργαλεία | Εξωτερικές ρυθμίσεις εργαλείων ... δημιουργώντας μια νέα διαμόρφωση προγράμματος.

Name: MyProject javah

Τοποθεσία: $ {env_var: JAVA_HOME} \ bin \ javah.exe

Κατάλογος εργασίας: $ {workspace_loc: / MyProject / bin}

Το πρόβλημα έρχεται στα επιχειρήματα ... όταν προσπαθώ Arguments: -d $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity όπως αναφέρεται στο βιβλίο

παίρνω όταν κάνω κλικ στο τρέξιμο

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: –d 

όταν προσπαθώ $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity}

παίρνω

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: C:\Paul\Workspace\MyProject\jni 

UPDATE: Έβαλα πρώτα την εντολή -classpath και τρέχει, αλλά δεν μπορεί να βρει το αρχείο κλάσης για το com.myproject

1 Comments
Guilherme 08/31/2014
Αστεία, αυτό δεν λειτούργησε για μένα. Είμαι σε mac. Αυτό επιλυθεί stackoverflow.com/questions/9200373/...

6 Answers


Paul Asiimwe 07/13/2013.

μετά από περαιτέρω έρευνα .... το έκανα.

έχω θέσει τα επιχειρήματα για

-d $ {workspace_loc: / MyProject / jni} -classpath C: \ Paul \ android-sdk-windows \ platforms \ android-17 \ android.jar; $ {workspace_loc: / MyProject / bin / classes} com.myproject.MainActivity


Julian 07/22/2014.

Περνάω επίσης εδώ και πολύ καιρό σε αυτό το πρόβλημα κατά την εργασία με το αναφερόμενο βιβλίο σχετικά με το Android NDK.

Σημειώστε τα εξής: Το όνομα της κλάσης java ΔΕΝ είναι γραμμένο σε { } , απλά γράψτε κάτι σαν com.myproject.MyActivity

Η παράμετρος -classpath μπορεί να δεχθεί αρκετές διαδρομές που χωρίζονται με ερωτηματικό.

Στην περίπτωσή μου αυτές οι παράμετροι λειτουργούσαν:

Location:

$NO 

Working Directory:

$NO 

Arguments:

-d ${workspace_loc:/myproject/jni} -classpath ${workspace_loc:/myproject/bin/classes};"C:\Eclipse\sdk\platforms\android-18\android.jar" com.myproject.MyActivity 

(BTW: Το σωστό αρχείο Adroid.jar αναφέρεται στο εσωτερικό του έργου Eclipse.)


community wiki 12/20/2014.

Εγώ επίσης αντιμετωπίζει το ίδιο πρόβλημα απόψε, βρήκα έναν λιγότερο κουραστικό τρόπο ως εξής ...

  1. ως "Τοποθεσία" ρυθμίστε το javah από το σύστημά σας
  2. ως "κατάλογος εργασίας" ορίστε τον κατάλογο bin / classes του έργου ( $NO )
  3. ως "Argument" ορίστε το φάκελο jni ως τον κατάλογο εξόδου και επισημάνετε την κλάση στην οποία θέλετε να εκτελέσετε το javah ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity )

Σημείωση :: Μην ξεχνάτε το διπλό qoute (") γύρω από την έξοδο στο τρίτο βήμα ( "$NO )

Ακολουθεί μια πλήρη εικόνα

Και τα 3 βήματα σε μία εικόνα


Saket 06/29/2014.

καλά σε περίπτωση ...

1-> Goto (cd C: \ Αρχεία προγράμματος \ Java \ jdk1.7.0_60 \ bin)

2-> C: \ Program Files \ Java \ jdk1.7.0_60 \ bin> javah -jni -classpath F: \ Android_OpenGLES \ FibonacciNative \ bin \ classes -d F: \ Android_OpenGLES \ FibonacciNative \ jni \ com.example.fibonaccinative. FibLib

χωρίς δημιουργία / χρήση μεταβλητής περιβάλλοντος ...


CoDe 08/12/2015.

Ακολούθησα με επιτυχία

javah com.sense.kios.Calculation 

Note: Include package name.

Σε περίπτωση που javah δεν βρεθεί ως εντολή και παίρνετε

The program 'javah' can be found in the following packages:
 * gcj-4.6-jdk
 * gcj-4.7-jdk
 * openjdk-7-jdk
 * openjdk-6-jdk
Try: sudo apt-get install  

χρησιμοποιήστε την κατευθείαν διαδρομή της διαδρομής jdk, στην περίπτωση μου είναι /usr/lib/jvm/jdk1.8.0/bin/javah .


Dhiraj Himani 07/29/2017.

ΝΑΙ ΕΙΝΑΙ ΣΩΣΤΟ πιο αφηρημένο θα ήταν

-d ${workspace_loc:/MyProject/jni} -classpath ${env_var:ANDROID_SDK_HOME}\platforms\android-16\android.jar;${workspace_loc:/MyProject/bin/classes} com.myproject.MyActivity 

Related questions

Hot questions

Language

Popular Tags