java.lang.IllegalArgumentException:有効なクラス名ではありません:ANDROID NDK javah

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

私はWindowsのEclipse上でNDKでAndroidをコードすることを学んでいます.Sylvain Ratabouilのチュートリアルブックに従っています。 だから実行| 外部ツール| 外部ツール構成...新しいプログラム構成を作成します。

Name: MyProject javah

場所:$ {env_var:JAVA_HOME} \ bin \ javah.exe

作業ディレクトリ:$ {workspace_loc:/ MyProject / bin}

問題は引数で来る...私が引数を試してみるとき:-d $ {workspace_loc:/ MyProject / jni} com.myproject.MyActivity

私は実行をクリックすると

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

私が$ {workspace_loc:/ MyProject / jni} com.myproject.MyActivity}を試してみると、

私は得る

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

更新:私は-classpathを先に入れて実行していますが、com.myprojectのクラスファイルが見つかりません

1 Comments
Guilherme 08/31/2014
面白い、これは私のために働いていない。 私はマックにいる。 この解決されたstackoverflow.com/questions/9200373/...

6 Answers


Paul Asiimwe 07/13/2013.

さらなる研究の後....私はそれをしました。

引数を設定する

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

Android NDKに関する上記の書籍を使って作業しているときにも、この問題に長い時間を費やしています。

次のことに注意してください:javaクラス名は{ }で書かれていませんcom.myproject.MyActivityようなものを書いてcom.myproject.MyActivity

-classpathパラメータは、セミコロンで区切られた複数のパスを受け取ることができます。

私の場合、このパラメータは機能しました:

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:正しいAdroid.jarファイルは、Eclipseプロジェクト内で参照されています。)


community wiki 12/20/2014.

私も今夜同じ問題に直面している、私は以下のように退屈な方法を見つけた...

  1. あなたのシステムからjavahを "Location"として設定する
  2. 作業ディレクトリとしてプロジェクトのbin / classesディレクトリを設定し$NO$NO )。
  3. "Argument"としてjniフォルダを出力ディレクトリに設定し、javahを実行するクラスを指定します( -d "$ {workspace_loc:/ HelloWorld / jni}" com.example.helloworld.MainActivity

NB :: 3番目のステップ( "$NO )の出力の前後にダブルqoute( ")を忘れないでください。

完全な画像も添付されています

1つの画像内のすべての3つのステップ


Saket 06/29/2014.

もしかしたら...

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

環境変数を作成/使用せずに...


CoDe 08/12/2015.

私はうまくいった

javah com.sense.kios.Calculation 

Note: Include package name.

javahがコマンドとして見つかりませんでした。

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  

私の場合は、/usr/lib/jvm/jdk1.8.0/bin/javahのjdkパスの直接パスを使用します。


Dhiraj Himani 07/29/2017.

そうだとすればもっと抽象的になります

-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