2012-04-07 100 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