2012-04-07 44 views
0

我在Windows 7上,在Cygwin 1.7.13中使用javah。我目前正在尝试为我的Android项目生成本机C++文件的头文件。在项目的根“在命令行上没有指定类”错误运行javah

运行,我执行的命令是:

[email protected] /cygdrive/c/Users/walb/stuff/work/workspace/SoundBites 
$ javah -verbose -d jni/ -classpath bin/classes uk.co.biogen.SoundBites.activity.SoundBitesActivity 

导致:

error: cannot access uk.co.biogen.SoundBites.activity.SoundBitesActivity 
class file for uk.co.biogen.SoundBites.activity.SoundBitesActivity not found 
javadoc: error - Class uk.co.biogen.SoundBites.activity.SoundBitesActivity not found. 
[ Search Path: C:\Program Files\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\sun 
rsasign.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\charsets.j 
ar;C:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes ] 
Error: No classes were specified on the command line. Try -help. 

topicsMost我已经readindicate我” ve得到了正确的-classpath参数。该错误消息的有趣的一点是:

[ Search Path: C:\Program Files\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\sun 
rsasign.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\charsets.j 
ar;C:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes ] 

在该列表中的最后一条路径是C:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes,这表明JAVAH被解释的说法完全错误。我认为唯一可以帮助的是调用javah的另一种方式,但将其目录添加到PATH是我能想到的唯一方法。

回答

2

就实现了我在原生Android通缉。整合和理解正在发生的事情会更容易,但是速度和实际上只是做我想做的事情。

1

这是否工作(你对-classpath参数路径前加入一个分号):

javah -verbose -d jni/ -classpath ;bin/classes uk.co.biogen.SoundBites.activity.SoundBitesActivity 
+0

对不起,我已经回到这么晚了。尝试了你的想法 - 可悲的是不行,'bin/classes'被认为是正斜杠。不过不要担心,我最终放弃了试图让NDK工作,而是实现了我想要的Android。谢谢! – 2012-08-07 10:12:56