2

Ubuntu Linux 32ビットシステムを使用していますが、ターミナルにクラスが指定されていません

sanidhya09 @ sanidhya09:〜/ worksheet / NdkFooActivity $ javah -jni -classpath adt-bundle-linux-x86 / sdk / platform / android-4.2 / android.jar; bin / classes / -d jni / com.example.NdkFooactivityエラー:クラスが指定されていませんbash:bin / classes /:ディレクトリです

私もこれを試しました

sanidhya09@sanidhya09:~/workspace/NdkFooActivity/bin/classes$ javah
-jni -classpath adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar; com.example.NdkFooactivity.NdkFooActivity Error: no classes specified com.example.NdkFooactivity.NdkFooActivity: command not found

引数のセクションで私が書いた外部ツールの構成を試しました

-d /home/sanidhya09/workspace/NdkFooActivity/jni -classpath /home/sanidhya09/adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar:/home/sanidhya09/workspace/NdkFooActivity/bin/classes com.example.NdkFooactivity

Eclipseでも、makeと言ってエラーが発生します。

[HelloJni]エラー127HelloJniC /C++の問題

4

2 に答える 2

1
sanidhya09@sanidhya09:~/workspace/NdkFooActivity$ javah -jni -classpath bin/classes:~/adt-bundle-linux-x86/sdk/platforms/android-16/android.jar com.example.NdkFooactivity.NdkFooActivity

アプリパッケージがcom.example.NdkFooactivityであり、関心のあるクラスがNdkFooActivityであると仮定すると、問題ないはずです。

android.jar実際にコンパイルに使用したパスを渡す必要があることに注意してください。私のSDKでは、ディレクトリはandroid-16ではなく、と呼ばれていandroid-4.2ます。また、クラスパスbin/classesにディレクトリが必要です。クラスパスにさらにjarが必要になる場合があります。

于 2013-02-14T21:46:37.887 に答える
0

しかし、もう1つ付け加えたいことがあります。(そしてそれは私の朝のほとんどを占めてそれを解決しました)

クラスパスを指定している間=を使用しないでください。/bin/classes:~/ProjectFolder/bin/classes ( the tilde representing the Home directory)

ただし、「../../」を使用してディレクトリを切り替えます。何らかの理由で、javahはホームディレクトリのチルダ演算子を認識しません。

また、クラスが他のプロジェクトに依存している場合は、クラスパスでもそれが必要になります。

user@laptop:~/SomeProject javah -classpath ./bin/classes:../<Whereever the path is>/SomeOtherDependentProject:../<Path to android-sdk>/android.jar <Qualified class path>
于 2014-04-15T07:19:42.780 に答える