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

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

Saya belajar kode Android di NDK pada WINDOWS Eclipse .... telah mengikuti Buku Tutorial oleh Sylvain Ratabouil. So im di Run | Alat Eksternal | Konfigurasi Alat Eksternal ... membuat konfigurasi program baru.

Name: MyProject javah

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

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

Masalahnya muncul dalam argumen ... ketika saya mencoba Arguments: –d $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity seperti yang disebutkan dalam buku

saya dapatkan ketika saya mengklik run

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

ketika saya mencoba $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity}

saya mendapat

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

UPDATE: saya meletakkan -classpath terlebih dahulu dan itu berjalan tetapi tidak dapat menemukan file kelas untuk com.myproject

1 Comments
Guilherme 08/31/2014
Lucu, ini tidak berhasil untukku. Saya di mac. Ini memecahkan stackoverflow.com/questions/9200373/…

6 Answers


Paul Asiimwe 07/13/2013.

setelah penelitian lebih lanjut .... saya melakukannya.

saya menetapkan argumen untuk

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


Julian 07/22/2014.

Saya juga menghabiskan waktu lama untuk masalah ini ketika bekerja dengan buku yang disebutkan tentang Android NDK.

Harap perhatikan hal-hal berikut: Java classname TIDAK ditulis dalam { } , tulis saja sesuatu seperti com.myproject.MyActivity

Parameter -classpath dapat menerima beberapa jalur yang dibagi dengan titik koma.

Dalam kasus 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: File Adroid.jar yang benar direferensikan di dalam proyek Eclipse.)


community wiki 12/20/2014.

Saya juga menghadapi masalah yang sama malam ini, saya menemukan cara yang kurang membosankan sebagai berikut ...

  1. sebagai "Lokasi" mengatur javah dari sistem Anda
  2. sebagai "Direktori kerja" mengatur direktori bin / kelas proyek ( $NO )
  3. sebagai "Argument" tetapkan folder jni sebagai direktori output dan tunjukkan kelas tempat Anda ingin menjalankan javah ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity )

NB :: Jangan lupa qoute ganda (") di sekitar output pada langkah ketiga ( "$NO )

Gambar lengkap juga dilampirkan berikut ini

Semua 3 langkah dalam satu gambar


Saket 06/29/2014.

kalau-kalau ...

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


CoDe 08/12/2015.

Setelah saya mencoba dengan sukses

javah com.sense.kios.Calculation 

Note: Include package name.

Dalam kasus jika javah tidak ditemukan sebagai perintah dan Anda mendapatkan

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 jalur langsung jdk path, dalam kasus saya adalah /usr/lib/jvm/jdk1.8.0/bin/javah .


Dhiraj Himani 07/29/2017.

YA ITU BENAR-BENAR 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