13

シンプルな NDK プロジェクト用の .h ヘッダー ファイルを作成しようとしています。cygwin を使用してmyprojectDIR\jniディレクトリを参照し、次のコマンドを実行します。

javah -o com_myproject_MyActivity.h -classpath  myprojectDIR\bin\classes com.myproject.MyActivity

次に、次のエラー メッセージが表示されます。

Error: cannot access android.app.Activity
class file for android.app.Activity not found

クラス内にネイティブ メソッドがあるので、 (android SDK からクラスを拡張しない)MyActivityという新しいクラスを作成しようとしましたが、正常に動作し、.h ファイルが作成され、デバイスで ndk-build とテストが成功しました!NativeAccess

したがって、私の問題は、作成したAndroidアクティビティとサービス内にネイティブメソッドが必要なことですが、JavahコマンドがAndroid-sdk自体の内部からクラスにアクセスできないため、それができません。私は (Windows-7 x64) を使用しており、次の環境変数があることに注意してください。

ANDROID_NDK : C:\Android\android-ndk-r7b
ANDROID_SDK : C:\Android\android-sdk
ANT_HOME    : C:\ANT\apache-ant-1.8.3
JAVA_HOME   : C:\Program Files\Java\jdk1.7.0_02
PATH        : %JAVA_HOME%\bin;%ANDROID_SDK%\tools;%ANDROID_SDK%\platform-tools;%ANDROID_NDK%;%ANT_HOME%\bin; (other unrelated stuff)

前もって感謝します

4

5 に答える 5

21

クラスパスに追加してみてください:

-classpath <android-sdk-location>/platforms/android-8.jar
于 2012-05-14T04:29:11.383 に答える
14

見つけました、以下の通りです。

javah -o com_myproject_MyActivity.h -classpath <android-sdk-location>/platforms/android-8.jar;myprojectDIR\bin\classes com.myproject.MyActivity
于 2012-05-18T14:24:50.877 に答える
4

Eclipseで次のことを試してください。

> 実行 | に移動します。外部ツール| 外部ツールの構成 プログラムの下で、小さなアイコンをクリックして新しい構成を作成します。

それに名前を付けます。

場所は次のとおりです: C:\Program Files\Java\jdk1.7.0_04\bin\javah.exe

作業ディレクトリは次のようになります: ${workspace_loc:/My_First_NDK/bin/classes} および

引数は次のようになります: -classpath ${workspace_loc:/My_First_NDK/bin/classes} -bootclasspath "C:\adt-bundle-windows-x86-20140624\sdk\platforms\android-19\android.jar" -v -d $ {workspace_loc:/My_First_NDK/jni} com.mypackage.ndk.HelloNDK

ここに画像の説明を入力

于 2014-09-23T07:21:06.067 に答える