2013-02-14 93 views
2

我使用Ubuntu Linux操作系統的32位系統,在終端,也沒有任何類指定JAVAH問題的Android NDK在Linux中

[email protected]:~/workspace/NdkFooActivity$ javah -jni -classpath adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar;bin/classes/ -d jni/ com.example.NdkFooactivity Error: no classes specified bash: bin/classes/: Is a directory

連我都試過這種

[email protected]:~/workspace/NdkFooActivity/bin/classes$ javah 
-jni -classpath adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar; com.example.NdkFooactivity.NdkFooActivity Error: no classes specified com.example.NdkFooactivity.NdkFooActivity: command not found 

即使我試圖外部工具配置 其中參數部分我甚至在Eclipse中寫道

-d /home/sanidhya09/workspace/NdkFooActivity/jni -classpath /home/sanidhya09/adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar:/home/sanidhya09/workspace/NdkFooActivity/bin/classes com.example.NdkFooactivity 

我得到錯誤說 化妝:

[HelloJni] Error 127 HelloJni C/C++ Problem

回答

1
[email protected]:~/workspace/NdkFooActivity$ javah -jni -classpath bin/classes:~/adt-bundle-linux-x86/sdk/platforms/android-16/android.jar com.example.NdkFooactivity.NdkFooActivity 

要細,假設你的應用程序包是com.example.NdkFooactivity和你感興趣的類是NdkFooActivity。

請注意,您必須將路徑傳遞給您實際用於編譯的android.jar。在我的SDK中,該目錄被稱爲android-16,而不是android-4.2。此外,您需要在類路徑中有bin/classes目錄。您的類路徑中可能需要更多罐子

+1

感謝它爲我工作。 – sanidhya09 2013-02-15 06:38:47

0

但還有一件事是我想補充的。 (並且哪個佔用了我早晨的大部分時間來解決這個問題)

雖然指定classpath = Refrain使用。 /bin/classes:~/ProjectFolder/bin/classes (the tilde representing the Home directory)

但是使用「../../」切換目錄。出於某種原因,javah不能識別主目錄的波浪符操作符。

另外一件事如果類對其他項目的依賴,那麼你就需要一個以及在類路徑GR8幫助亞歷克斯·科恩

[email protected]:~/SomeProject javah -classpath ./bin/classes:../<Whereever the path is>/SomeOtherDependentProject:../<Path to android-sdk>/android.jar <Qualified class path>