java.lang.IllegalArgumentException: Ej ett giltigt klassnamn: ANDROID NDK javah

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

Jag lär mig att koda Android i NDK på WINDOWS Eclipse .... följt en handledning av Sylvain Ratabouil. Så im i Run | Externa verktyg | Externa verktygskonfigurationer ... skapa en ny programkonfiguration.

Name: MyProject javah

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

Arbetsdokument: $ {workspace_loc: / MyProject / bin}

Problemet kommer i argumenter ... när jag försöker Arguments: -d $ {workspace_loc: / MyProject / jni} com.myproject.MyAktivitet som det står i boken

jag får när jag klickar kör

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

när jag försöker $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity}

jag får

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

UPPDATERING: Jag lägger -classpath först och den körs men kan inte hitta klassfilen för com.myproject

1 Comments
Guilherme 08/31/2014
Roligt, det här fungerade inte för mig. Jag är i Mac. Detta löste stackoverflow.com/questions/9200373/...

6 Answers


Paul Asiimwe 07/13/2013.

efter ytterligare forskning .... gjorde jag det.

Jag ställer argument till

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


Julian 07/22/2014.

Jag spenderar också lite lång tid på detta problem när jag arbetar med den nämnda boken om Android NDK.

Observera följande: Java-klassnamnet är INTE skrivet i { } , skriv bara något som com.myproject.MyActivity

Parametern -classpath kan ta emot flera vägar som är delade av semikolon.

I mitt fall arbetade dessa parametrar:

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: Den korrekta Adroid.jar-filen refereras inuti Eclipse-projektet.)


community wiki 12/20/2014.

Jag står inför samma problem ikväll, jag hittade en mindre tråkig väg som följande ...

  1. som "Plats" ställa javahen från ditt system
  2. som "Arbetskatalog" anger du projektets bin / klasskatalog ( $NO )
  3. som "Argument" anger du mappen i mappen som utdatakatalog och pekar ut den klass som du vill köra javahen på ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity )

Obs :: Glöm inte dubbel qoute (") runt utgången i det tredje steget ( "$NO )

En fullständig bild bifogas också

Alla 3 steg i en enda bild


Saket 06/29/2014.

bra i fallet ...

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

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

utan att skapa / använda miljövariabler ...


CoDe 08/12/2015.

Efter att jag försökt framgångsrikt

javah com.sense.kios.Calculation 

Note: Include package name.

Om javah inte hittades som ett kommando och du får

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  

använd direktvägen till jdk-sökvägen, i mitt fall är det /usr/lib/jvm/jdk1.8.0/bin/javah .


Dhiraj Himani 07/29/2017.

JA DET ÄR KORREKT mer abstrakt skulle vara

-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