Javah: Error: cannot access android.support.v7.app.ActionBarActivity

Javah: Error: cannot access android.support.v7.app.ActionBarActivity

我对 javah 有疑问,我已经阅读了大约 4 或 5 个错误 "solved" 的 stakcoverflow 帖子,但对我来说一切正常。

我的问题:

当我执行 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

我也试过同样的命令,只有“/”和“\”来分隔目录。

我已经用 android-11、android-14 和 android-21 试过了。

我尝试将以下外部 jar 添加到我的项目中: "android-support-v4.jar" 和 "android-support-v7-appcompat.jar"

我已经尝试使用 Eclipse 创建外部构建配置,如下所示:Javah Error android.app.Activity not found

我正在使用的工具

我正在 windows 8.1.

上使用 eclipse juno

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

包含原生函数的.java文件在"ACK.java"包中:"com.test.prueba"

在项目中,我使用的android库是android 5.0.1

我能做什么?提前致谢。

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

javah com.test.prueba.ACK

对应的JNIheader文件com_test_prueba_ACK.h会在当前目录下创建

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

请看我的回答 它以 alijandro.

描述的方式集成在 Android Studio 中