java.lang.IllegalArgumentException: Hindi isang wastong pangalan ng klase: ANDROID NDK javah

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

Ako ay nag-aaral na code Android sa NDK sa Windows Eclipse .... ay sumusunod sa isang Tutorial Book sa pamamagitan ng Sylvain Ratabouil. Kaya im sa Run | Mga Panlabas na Kagamitan | Mga Panlabas na Pag-configure ng Mga Tool ... paglikha ng bagong configuration ng programa.

Name: MyProject javah

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

Nagtatrabaho na direktoryo: $ {workspace_loc: / MyProject / bin}

Ang problema ay dumating Sa mga argumento ... kapag sinusubukan ko ang mga argumento: -d $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity tulad ng sinasabi nito sa aklat

Nakukuha ko kapag nag-click ako patakbuhin

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

kapag sinubukan ko ang $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity}

nakuha ko

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

I-UPDATE: ako ay naglagay -classpath una at tumatakbo ito ngunit hindi mahanap ang klase file para sa com.myproject

1 Comments
Guilherme 08/31/2014
Nakakatawa, hindi ito nagtrabaho para sa akin. Nasa mac ako. Nalutas ito stackoverflow.com/questions/9200373/...

6 Answers


Paul Asiimwe 07/13/2013.

pagkatapos ng karagdagang pananaliksik .... ginawa ko ito.

Nagtatakda ako ng mga argumento

-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.

Gumugugol din ako ng mahabang panahon sa problemang ito kapag nagtatrabaho sa nabanggit na libro tungkol sa Android NDK.

Mangyaring tandaan ang mga sumusunod: Ang java classname ay HINDI nakasulat sa { } , isulat lamang ang isang bagay tulad ng com.myproject.MyActivity

Ang parameter na -classpath maaaring makatanggap ng maraming mga path na hinahati ng semicolon.

Sa aking kalagayan ang mga parameter na ito ay nagtrabaho:

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. Ang tamang Adroid.jar file ay isinangguni sa loob ng proyekto ng Eclipse.)


community wiki 12/20/2014.

Ako din nakaharap sa parehong problema ngayong gabi, natagpuan ko ang isang mas nakakapagod na paraan tulad ng mga sumusunod ...

  1. bilang "Lokasyon" itakda ang javah mula sa iyong system
  2. bilang "Nagtatrabaho direktoryo" itakda ang direktoryo bin / klase ng proyekto ( $NO )
  3. bilang "Argument" itakda ang jni folder bilang direktoryo ng output at ituro ang klase kung saan gusto mong patakbuhin ang javah ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity )

NB :: Huwag kalimutan ang double qoute (") sa paligid ng output sa ikatlong hakbang ( "$NO )

Ang isang buong larawan ay naka-attach din sumusunod

Lahat ng 3 mga hakbang sa isang solong larawan


Saket 06/29/2014.

mabuti kung sakaling ...

1-> Goto (cd C: \ Program Files \ 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

nang walang paglikha / paggamit ng variable ng kapaligiran ...


CoDe 08/12/2015.

Sumusunod ako ay matagumpay na sumubok

javah com.sense.kios.Calculation 

Note: Include package name.

Kung sakaling hindi makita ang javah bilang isang utos at nakakakuha ka

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  

gamitin ang direktang landas ng path jdk, sa aking kaso ito ay /usr/lib/jvm/jdk1.8.0/bin/javah .


Dhiraj Himani 07/29/2017.

OO NA TATAKIN mas abstract ay magiging

-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