java.lang.IllegalArgumentException: non è un nome di classe valido: ANDROID NDK javah

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

Sto imparando a codificare Android in NDK su WINDOWS Eclipse .... sto seguendo un Tutorial di Sylvain Ratabouil. Quindi sono in Run | Strumenti esterni | Configurazioni di strumenti esterni ... creando una nuova configurazione di programma.

Name: MyProject javah

Posizione: $ {env_var: JAVA_HOME} \ bin \ javah.exe

Directory di lavoro: $ {workspace_loc: / MyProject / bin}

Il problema arriva In argomenti ... quando provo Argomenti: -d $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity come si dice nel libro

ottengo quando faccio clic su Esegui

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

quando provo $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity}

ottengo

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

AGGIORNAMENTO: ho messo -classpath per primo ed è in esecuzione ma non riesco a trovare il file di classe per com.myproject

1 Comments
Guilherme 08/31/2014
Divertente, questo non ha funzionato per me. Sono in mac. Questo ha risolto stackoverflow.com/questions/9200373/...

6 Answers


Paul Asiimwe 07/13/2013.

dopo ulteriori ricerche ... l'ho fatto.

ho impostato argomenti per

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


Julian 07/22/2014.

Trascorro anche molto tempo su questo problema quando lavoro con il libro menzionato su Android NDK.

Si noti quanto segue: Il nome della classe java NON è scritto in { } , basta scrivere qualcosa come com.myproject.MyActivity

Il parametro -classpath può ricevere diversi percorsi suddivisi in punti e virgola.

Nel mio caso, questi parametri hanno funzionato:

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 .: Il file Adroid.jar corretto è referenziato all'interno del progetto Eclipse.)


community wiki 12/20/2014.

Anche io sto affrontando lo stesso problema stasera, ho trovato un modo meno noioso come seguendo ...

  1. come "Posizione" imposta javah dal tuo sistema
  2. come "Directory di lavoro" imposta la directory bin / classes del progetto ( $NO )
  3. come "Argument" imposta la cartella jni come directory di output e indica la classe su cui vuoi eseguire javah ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity )

NB :: Non dimenticare il doppio qoute (") attorno all'output nel terzo passaggio ( "$NO )

Di seguito è riportata anche una foto completa

Tutti e 3 i passaggi in un'unica immagine


Saket 06/29/2014.

bene nel caso ...

1-> Goto (cd C: \ Programmi \ Java \ jdk1.7.0_60 \ bin)

2-> C: \ Programmi \ 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

senza creare / utilizzare la variabile d'ambiente ...


CoDe 08/12/2015.

In seguito ho provato con successo

javah com.sense.kios.Calculation 

Note: Include package name.

Nel caso in cui javah non venga trovato come comando e si ottiene

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  

usa il percorso diretto del percorso jdk, nel mio caso è /usr/lib/jvm/jdk1.8.0/bin/javah .


Dhiraj Himani 07/29/2017.

SÌ CHE È CORRETTO sarebbe più astratto

-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