【发布时间】:2012-05-07 14:34:58
【问题描述】:
我正在尝试为一个简单的 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
我在MyActivity 类中有一个本地方法,所以我尝试创建一个名为NativeAccess 的新类(不从android SDK 扩展任何类),它工作正常,创建了.h 文件,ndk - 在成功的设备上构建和测试!
所以我的问题是我需要在我创建的 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)
提前致谢
【问题讨论】:
-
您需要在使用此工具的类路径中包含 android 平台 jar。如果您的任务特别简单,您可以使用 ndk 示例作为指导,手动创建标头。
-
谢谢克里斯,我确实想过用 javah 工具添加 android jar 的 classpth,但我找不到如何做到这一点..
标签: android android-ndk java-native-interface javah