java.lang.IllegalArgumentException: Bukan nama kelas yang sah: ANDROID NDK javah

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

Saya belajar untuk kod android di NDK pada WINDOWS Eclipse .... telah mengikuti Buku Tutorial oleh Sylvain Ratabouil. Jadi, dalam Run | Alat Luar | Konfigurasi Alat Luaran ... mewujudkan konfigurasi program baru.

Name: MyProject javah

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

Direktori kerja: $ {workspace_loc: / MyProject / bin}

Masalahnya datang Dalam hujah ... apabila saya cuba Argumen: -d $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity seperti yang dikatakan di dalam buku

Saya mendapat apabila saya klik lari

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

apabila saya mencuba $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity}

saya dapat

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

UPDATE: saya meletakkan -classpath terlebih dahulu dan ia berjalan tetapi tidak dapat mencari fail kelas untuk com.myproject

1 Comments
Guilherme 08/31/2014
Lucu, ini tidak berfungsi untuk saya. Saya berada di mac. Ini diselesaikan stackoverflow.com/questions/9200373/...

6 Answers


Paul Asiimwe 07/13/2013.

selepas penyelidikan lanjut .... saya melakukannya.

saya menetapkan hujah-hujah

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

Saya juga menghabiskan masa yang lama mengenai masalah ini apabila bekerja dengan buku yang disebut tentang Android NDK.

Sila ambil perhatian yang berikut: Nama kelas java TIDAK ditulis dalam { } , hanya menulis sesuatu seperti com.myproject.MyActivity

Parameter -classpath boleh menerima beberapa laluan yang dibahagikan dengan titik koma.

Dalam kes saya parameter ini berfungsi:

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 .: Fail Adroid.jar yang betul dirujuk di dalam projek Eclipse.)


community wiki 12/20/2014.

Saya juga menghadapi masalah yang sama malam ini, saya mendapati cara yang kurang membosankan seperti berikut ...

  1. sebagai "Lokasi" menetapkan javah dari sistem anda
  2. sebagai "Direktori kerja" menetapkan direktori bin / kelas projek ( $NO )
  3. sebagai "Argumen" tetapkan folder jni sebagai direktori output dan tunjukkan kelas di mana anda ingin menjalankan javah ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity )

NB :: Jangan lupa qoute dua (") sekitar keluaran dalam langkah ketiga ( "$NO )

Gambar penuh juga disertakan

Semua 3 langkah dalam satu gambar


Saket 06/29/2014.

baik dalam kes ...

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

tanpa membuat / menggunakan pembolehubah persekitaran ...


CoDe 08/12/2015.

Berikutan saya cuba berjaya

javah com.sense.kios.Calculation 

Note: Include package name.

Sekiranya javah tidak dijumpai sebagai arahan dan anda mendapat

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  

gunakan laluan langsung laluan jdk, dalam kes saya /usr/lib/jvm/jdk1.8.0/bin/javah .


Dhiraj Himani 07/29/2017.

YA YANG TETAPI lebih abstrak akan

-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