4

我对 javah 有疑问,我已经阅读了大约 4 或 5 篇带有错误“已解决”的 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

我正在使用的工具

我正在使用 Eclipse Juno,在 Windows 8.1 上。

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

包含native函数的.java文件是包中的“ACK.java”:“com.test.prueba”

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

我能做些什么?提前致谢。

4

3 回答 3

9

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

javah com.test.prueba.ACK

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

于 2015-02-09T09:33:37.850 回答
2

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

于 2015-02-23T21:32:35.700 回答
0

请查看我的答案https://stackoverflow.com/a/52527212/2573138在此处输入图像描述 ,它以alijandro 描述的方式集成到 Android Studio 中。

于 2018-09-26T23:20:28.310 回答