为java本机方法创建头文件时出错

时间:2011-11-28 06:26:52

标签: android java-native-interface

我正在尝试在android应用程序中为java native方法创建头文件以开发JNI接口。我在java文件中创建了本机方法。并运行Android应用程序。现在我尝试使用像D:\workspace\Internet_TV4\bin>javah com.internet.videos.Internet_TV4这样的javah命令创建头文件 然后这个错误即将到来

error: cannot access com.internet.videos.Internet_TV4
class file for com.internet.videos.Internet_TV4 not found
javadoc: error - Class com.internet.videos.Internet_TV4 not found.
Error: No classes were specified on the command line.  Try -help.

其中 com.internet.videos 是包名称, Internet_TV4 是类名。我先前使用此命令为sdk旧版本成功创建了头文件。现在我使用最新版本的android sdk,我遇到了这种类型的错误。在较新的版本中,所有类文件都在\ workspace \ Internet_TV4 \ bin \ classes \ com \ internet \ videos路径中创建,所以我也尝试了该命令D:\workspace\Internet_TV4\bin>javah classes.com.internet.videos.Internet_TV4 但我再次得到一些错误,如

error: cannot access classes.com.internet.videos.Internet_TV4
bad class file: .\classes\com\internet\videos\Internet_TV4.class
class file contains wrong class: com.internet.videos.Internet_TV4
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
com.sun.tools.javac.util.Abort
        at com.sun.tools.javac.comp.Check.completionError(Check.java:164)
        at com.sun.tools.javadoc.DocEnv.loadClass(DocEnv.java:149)
        at com.sun.tools.javadoc.RootDocImpl.<init>(RootDocImpl.java:77)
        at com.sun.tools.javadoc.JavadocTool.getRootDocImpl(JavadocTool.java:159
)
        at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:330)
        at com.sun.tools.javadoc.Start.begin(Start.java:128)
        at com.sun.tools.javadoc.Main.execute(Main.java:66)
        at com.sun.tools.javah.Main.main(Main.java:147)
javadoc: error - fatal error

所以我无法创建头文件。任何人都可以帮我解决这个问题。

提前谢谢

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,并在运行javah -help

后想出来了

您需要使用-classpath选项设置类路径。在要输出头文件的文件夹中,运行:

javah -classpath D:\workspace\Internet_TV4\bin\classes\ com.internet.videos.Internet_TV4
相关问题