シンプルな 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)
前もって感謝します