我正在尝试为简单的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)
提前致谢
我有一个javah的问题,我已经阅读了大约4或5个stakcoverflow帖子,错误"已解决",但任何事情对我有用.
我的问题:
当我执行javah命令时,我有这个错误:
Error: cannot access android.support.v7.app.ActionBarActivity
class file for android.support.v7.app.ActionBarActivity not found
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
这是我测试过的命令:
C:\Users\MyUser\workspace3\PruebaApp\jni\include>javah -classpath ../../bin/classes;C:\Users\MyUser\AppData\Local\Android\sdk\platforms\android-14\android.jar -o ACK.h com.test.prueba.ACK
Run Code Online (Sandbox Code Playgroud)
我已经尝试了同样的命令只有"/"而只有"\"用于分离目标.
我用android-11,android-14和android-21试过了.
我试图将以下外部jar添加到我的项目中:"android-support-v4.jar"和"android-support-v7-appcompat.jar"
我试图用eclipse创建一个外部构建配置,就像这里:找不到Javah Error android.app.Activity
我正在使用的工具
我在Windows 8.1上使用eclipse juno.
我执行命令的文件夹是{project_dir}/jni/include.我从不同的文件夹中尝试过它,正确地修改了命令.
包含本机函数的.java文件是包中的"ACK.java":"com.test.prueba"
在项目中,我使用的android库是android 5.0.1
我能做什么?提前致谢.