2015-02-07 121 views
4

我有一個javah的問題,我已閱讀大約4或5個stakcoverflow帖子,錯誤「解決了」,但任何東西都適用於我。Javah:錯誤:無法訪問android.support.v7.app.ActionBarActivity

我的問題:

當我執行JAVAH命令我有這樣的錯誤:

Error: cannot access android.support.v7.app.ActionBarActivity 
    class file for android.support.v7.app.ActionBarActivity not found 

我曾嘗試:

這是我測試的命令:

C:\Users\MyUser\workspace3\PruebaApp\jni\include>javah -classpath ../../bin/classes;C:\Users\MyUser\AppData\Local\Android\sdk\platforms\android-14\android.jar -o ACK.h com.test.prueba.ACK 

我已經嘗試過用相同的命令,只用「/」和只有「\」來分隔direcotries。

我試過用android-11,android-14和android-21。

我曾嘗試到以下外部jar添加到我的項目: 「Android的支持,v4.jar」和「Android的支持-V7-appcompat.jar」

我試圖做到這一點創建用eclipse一個外部構建配置,喜歡這裏:Javah Error android.app.Activity not found

工具我使用

我與日食JUNO合作,在Windows 8.1中。

我執行命令的文件夾是{project_dir}/jni/include。我已經嘗試從不同的文件夾,正確修改命令。

包含本機功能的.java文件是「ACK.java」中的包:「com.test.prueba」

在該項目中,我使用了Android庫就是Android 5.0。 1

我該怎麼辦?提前致謝。

+2

我已經「解決」了我的問題。我已將absolut路徑添加到丟失的文件中:「android-support-v7-appcompat」和「android-support-v4」。結果javah命令是:javah -classpath ../../bin/classes;/sdk/platforms/android-14/android.jar;/sdk/extras/android/support/v7/appcompat /libs/android-support-v7-appcompat.jar;/sdk/extras/android/support/v7/appcompat/libs/android-support-v4.jar -o Xh com.test.prueba.ACK。但問題仍然是,我需要寫在上面,爲什麼? – Dan 2015-02-07 19:07:29

回答

9

在java類中聲明的本地方法足以生成JNI頭。在你的例子中,命令javah的選項-classpath不是很有用。假設com/test/prueba/ACK.java是您處理生成JNI頭的類。您可以更改工作目錄{project_dir}\src,執行命令

javah com.test.prueba.ACK 

相應的JNI頭文件com_test_prueba_ACK.h將在當前目錄中創建。

+0

你救了我的一天!這樣一個簡單的命令,沒有人標記了這個答案!非常感謝。 – Sarvan 2015-04-13 14:31:06

+0

我怎麼會得到錯誤'錯誤:無法找到com.test.prueba.ACK.'的類文件? – 2015-12-08 16:18:24

+0

@lifeevader這是提問者的例子,你應該改變它到你真正的類名。 – alijandro 2015-12-09 03:50:02

2

您應該在classpath參數中寫入完整路徑android-support-v7-appcompat.jarandroid-support-v4.jar

+0

這些JAR文件在Android/Sdk/extras/android/support/v7/appcompat/libs / – ther 2015-09-22 14:36:42

相關問題