我正在尝试为简单的NDK项目创建一个.h头文件。使用Cygwin我浏览到myprojectDIR\jni
目录下,然后执行此命令:Javah错误android.app.Activity未找到
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
我有内部MyActivity
类中的本地方法,所以我试图创建一个新的类名为NativeAccess
(不扩展android SDK中的任何类),并且它工作正常,.h文件已创建,ndk-构建并在设备上测试成功!
所以我的问题是,我需要我创建的Android活动和服务中的我的本地方法,但我不能这样做,因为Javah
命令无法从android-sdk本身内部访问类。请注意,我使用的语言(Windows-7 64位),我有这些环境变量:提前
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)
感谢
你需要在你使用这个工具的类路径中包含android平台的jar(s)。如果你的任务特别简单,你可以手动创建标题,使用ndk样本作为指导。 –
谢谢克里斯,我曾考虑过用javah工具添加android jar(s)的classpth,但是我找不到如何去做。 –