2012-10-06 87 views
3

我正在嘗試使用Javah爲我的Android NDK應用程序創建一個.h文件。我正在使用cygwin爲我做同樣的事情。javah錯誤:無法訪問活動

固定的工作區,以我目前的應用程序的bin文件夾,我執行以下命令: -

javah -classpath /cygdrive/c/Android/android-sdk/platforms/android.jar myNDK\bin\classes my.first.NDK.MyNDKActivity 

然而,它始終給以下錯誤: -

error: cannot access myNDKbinclasses 
class file for myNDKbinclasses not found 
javadoc: error - Class myNDKbinclasses not found. 
error: cannot access my.first.NDK.MyNDKActivity 
class file for my.first.NDK.MyNDKActivity not found 
javadoc: error - Class my.first.NDK.MyNDKActivity not found. 
Error: No classes were specified on the command line. Try -help. 

誰能幫助我在解決這個問題?

我也試圖去包含Java文件的文件夾,並執行JAVAH那裏,但還是我得到同樣的錯誤: -

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

,不知怎的,描繪了問題是由於一些權限的問題,我猜。

+0

檢查出來http:// stackoverflow。com/questions/10483959/javah-error-android-app-activity-not-found/25989225#25989225 –

回答

1

最後,我解決了我的問題。我使用的類路徑存在問題。這裏去最終解決方案: -

  1. 凡從$PROJECT_DIRECTORY/src

  2. 執行命令的Android編譯系統的螞蟻部分實際上放在bin/classes類文件。因此類路徑應該是形式$ PROJECT_DIRECTORY /斌/班

  3. javah -classpath ../bin/classes my.first.NDK.MyNDKActivity

+0

需要一些更多的信息 – droid

+0

你可以只給出完整路徑的命令 – droid

2

你似乎在你的類路徑中缺少一個分隔符:

javah -classpath /cygdrive/c/Android/android-sdk/platforms/android.jar:myNDK/bin/classes my.first.NDK.MyNDKActivity 
+0

仍然收到相同的錯誤錯誤:無法訪問my.first.NDK.MyNDKActivity my.first.NDK的類文件。找不到MyNDKActivity javadoc:error - 找不到類my.first.NDK.MyNDKActivity。 錯誤:在命令行上沒有指定類。嘗試 - 幫助。 –

+0

此錯誤消息會提示您的類路徑不正確。從當前目錄中,執行'ls myNDK/bin/classes',你能看到你的'my'文件夾嗎? – Reimeus

+0

我可以看到「我的」文件夾,但這需要我到我的項目文件夾之外。這可以嗎 ?我想我需要留在我的bin文件夾中? –

1

什麼的android.jar在您的生產線在做什麼?

此外,MyNDKActivity是包含原生簽名?

我以這種形式使用JAVAH(其作品對我來說):

javah -d output/ -classpath /home/bod/path/to/eclipse/workspace/project/classes com.myapp.NDKBridge 

其中:

-d輸出/是目錄收集生成的頭

-classpath/home /.../ classes - 您的項目中有班級的文件夾

com.myapp.NDKBridge - 聲明的類別名稱原生簽名。

+0

問題我對這個NDK是全新的。那麼,我應該在哪裏執行這些命令,在哪個文件夾中?在改變我的命令時,我得到了同樣的錯誤 –

+0

感謝您的幫助(+1)!我有我的班級路徑問題 –

1

的,也許它可以工作!添加[-bootclasspath]你的SDK路徑的選擇。

javah -bootclasspath /home/lmdyyh/development/adt-bundle-linux-x86-20131030/sdk/platforms/android-19/android.jar -classpath bin/classes -d jni com.myndk.Myndk

+0

謝謝!這工作完美。 – Nerdizzle