2015-02-07 138 views
4

我有一个javah的问题,我已阅读大约4或5个stakcoverflow帖子,错误“解决了”,但任何东西都适用于我。Javah:错误:无法访问android.support.v7.app.ActionBarActivity

我的问题:

当我执行JAVAH命令我有这样的错误:

Error: cannot access android.support.v7.app.ActionBarActivity 
    class file for android.support.v7.app.ActionBarActivity not found 

我曾尝试:

这是我测试的命令:

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 

我已经尝试过用相同的命令,只用“/”和只有“\”来分隔direcotries。

我试过用android-11,android-14和android-21。

我曾尝试到以下外部jar添加到我的项目: “Android的支持,v4.jar”和“Android的支持-V7-appcompat.jar”

我试图做到这一点创建用eclipse一个外部构建配置,喜欢这里:Javah Error android.app.Activity not found

工具我使用

我与日食JUNO合作,在Windows 8.1中。

我执行命令的文件夹是{project_dir}/jni/include。我已经尝试从不同的文件夹,正确修改命令。

包含本机功能的.java文件是“ACK.java”中的包:“com.test.prueba”

在该项目中,我使用了Android库就是Android 5.0。 1

我该怎么办?提前致谢。

+2

我已经“解决”了我的问题。我已将absolut路径添加到丢失的文件中:“android-support-v7-appcompat”和“android-support-v4”。结果javah命令是:javah -classpath ../../bin/classes;/sdk/platforms/android-14/android.jar;/sdk/extras/android/support/v7/appcompat /libs/android-support-v7-appcompat.jar;/sdk/extras/android/support/v7/appcompat/libs/android-support-v4.jar -o Xh com.test.prueba.ACK。但问题仍然是,我需要写在上面,为什么? – Dan 2015-02-07 19:07:29

回答

9

在java类中声明的本地方法足以生成JNI头。在你的例子中,命令javah的选项-classpath不是很有用。假设com/test/prueba/ACK.java是您处理生成JNI头的类。您可以更改工作目录{project_dir}\src,执行命令

javah com.test.prueba.ACK 

相应的JNI头文件com_test_prueba_ACK.h将在当前目录中创建。

+0

你救了我的一天!这样一个简单的命令,没有人标记了这个答案!非常感谢。 – Sarvan 2015-04-13 14:31:06

+0

我怎么会得到错误'错误:无法找到com.test.prueba.ACK.'的类文件? – 2015-12-08 16:18:24

+0

@lifeevader这是提问者的例子,你应该改变它到你真正的类名。 – alijandro 2015-12-09 03:50:02

2

您应该在classpath参数中写入完整路径android-support-v7-appcompat.jarandroid-support-v4.jar

+0

这些JAR文件在Android/Sdk/extras/android/support/v7/appcompat/libs / – ther 2015-09-22 14:36:42