找不到Javah错误android.app.Activity

Aye*_*ieh 13 java-native-interface android android-ndk javah

我正在尝试为简单的NDK项目创建一个.h头文件.使用cygwin我浏览到myprojectDIR\jni目录,然后执行以下命令:

javah -o com_myproject_MyActivity.h -classpath  myprojectDIR\bin\classes com.myproject.MyActivity
Run Code Online (Sandbox Code Playgroud)

然后出现此错误消息:

Error: cannot access android.app.Activity
class file for android.app.Activity not found
Run Code Online (Sandbox Code Playgroud)

我在MyActivity类中有一个本机方法,所以我尝试创建一个名为NativeAccess(不扩展android SDK中的任何类)的新类,它工作正常,.h文件创建,ndk-build和测试设备成功!

所以我的问题是我需要在我创建的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)
Run Code Online (Sandbox Code Playgroud)

提前致谢

Jon*_*Boy 21

尝试添加到您的类路径:

-classpath <android-sdk-location>/platforms/android-8.jar
Run Code Online (Sandbox Code Playgroud)


Aye*_*ieh 14

我找到了,这是怎么回事:

javah -o com_myproject_MyActivity.h -classpath <android-sdk-location>/platforms/android-8.jar;myprojectDIR\bin\classes com.myproject.MyActivity
Run Code Online (Sandbox Code Playgroud)