java.lang.IllegalArgumentException: Geçerli bir sınıf adı değil: ANDROID NDK javah

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

WINDOWS Eclipse'de NDK'da Android'i kodlamayı öğreniyorum .... Sylvain Ratabouil'in bir Eğitici Kitabı takip ediyordum. Öyleyse Run | Dış Araçlar | Harici Araçlar Yapılandırmaları… yeni bir program yapılandırması oluşturuluyor.

Name: MyProject javah

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

Çalışma dizini: $ {workspace_loc: / MyProject / bin}

Sorun argüman olarak geliyor ... Argümanlar denediğimde: -d $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity kitabında yazdığı gibi

koşuya tıkladığımda anladım

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

$ {workspace_loc: / MyProject / jni} com.myproject.MyActivity} öğesini denediğimde

alırım

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

GÜNCELLEME: önce -classpath koydu ve koşuyor ama com.myproject için sınıf dosyasını bulamıyorum

1 Comments
Guilherme 08/31/2014
Komik, bu benim için çalışmadı. Mac'deyim. Bu çözüldü stackoverflow.com/questions/9200373/…

6 Answers


Paul Asiimwe 07/13/2013.

ileri araştırmalardan sonra .... yaptım.

argümanları ayarlıyorum

-d $ {workspace_loc: / MyProject / jni} -classpath C: \ Paul \ android-sdk-windows \ platformlar \ android-17 \ android.jar; $ {workspace_loc: / MyProject / bin / sınıflar} com.myproject.MainActivity


Julian 07/22/2014.

Ayrıca, Android NDK hakkında bahsedilen kitapla çalışırken bu soruna biraz zaman harcadım.

Lütfen dikkat ediniz: java classname { } yazılmıştır, com.myproject.MyActivity gibi bir şey com.myproject.MyActivity

-classpath parametresi noktalı virgülle ayrılmış çeşitli yollar alabilir.

Benim durumumda bu parametreler işe yaradı:

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 .: Eclipse projesinde doğru Adroid.jar dosyası başvuruyor.)


community wiki 12/20/2014.

Bu gece de aynı problemle karşı karşıyayım, aşağıdaki gibi daha az sıkıcı bir yol buldum ...

  1. "Yer" olarak javah sisteminizden ayarlanır
  2. "Çalışma dizini", projenin bin / sınıf dizinini ayarlar ( $NO )
  3. "Argüman" olarak jni klasörünü çıkış dizini olarak ayarlayın ve javah'ı çalıştırmak istediğiniz sınıfı işaretleyin ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity )

NB :: Üçüncü adımda çıktının etrafında çift qoute (") unutmayın ( "$NO )

Tam bir resim de aşağıdaki ekte

Tek bir resimde tüm 3 adım


Saket 06/29/2014.

iyi durumda ...

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

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

ortam değişkeni oluşturmadan / kullanmadan ...


CoDe 08/12/2015.

Takip ettim başarılı bir şekilde

javah com.sense.kios.Calculation 

Note: Include package name.

Eğer javah bir komut olarak bulunmazsa

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  

jdk yolunun doğrudan yolunu kullan, benim durumumda /usr/lib/jvm/jdk1.8.0/bin/javah .


Dhiraj Himani 07/29/2017.

DAHA DOĞRU

-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