2012-02-01 32 views
3

在我看來,我試圖實現的目標非常簡單,但卻變得非常痛苦。Blackberry 5.0 - 添加對Java庫項目的引用

我有ProjectA,這是一個BlackBerry應用程序項目。我有ProjectB,這是一個Java庫項目。我想從ProjectA中引用ProjectB。我可以添加一個引用,但是當我運行ProjectA時,它不起作用。我有兩個項目的源代碼,並都使用Java編譯器1.4

我已經試過許多東西,但由於某種原因,這些都失敗編譯:

1.預verify.exe上項目B 它失敗錯誤「JAR文件創建失敗,錯誤-1」我可以看到鱈魚和jar文件已經創建,但是當將jar文件添加到ProjectA並運行它時,它不起作用。不知道是否需要添加.cod文件。

2.創建新的BlackBerry圖書館項目,並引用它在項目A 我創建一個新項目項目C,然後項目B的jar添加到它。然後我在ProjectA中添加對ProjectC的引用。但我不能從ProjectB導入班級

請提出一條出路。 我使用Eclipse Plug-in並依靠Eclipse的構建功能

回答

7

我自己找出答案。如果有人絆倒了這一點,請在這裏發佈。以下是具體步驟:

  1. 創建庫和出口爲JAR(或下載第三方JAR)
  2. 的JAR運行preverify.exe

    preverify.exe -verbose -classpath「C :/ Program Files/Research In Motion/BlackBerry JDE 5.0.0/lib/net_rim_api.jar「jarname.jar

  3. 如果你很幸運,你不會遇到任何問題,你就會完成。但我並不幸運。我得到了下面的錯誤

Error: No such file or directory. JAR file creation failed with error -1

這方面有兩個可能的原因:

  • jar.exe的不添加到您的PATH。如果是這樣,請將它添加到PATH
  • jarv.exe上的cvfm或-cfm選項無法執行。我不知道原因,但解決此問題的方法是使用-cf選項,指向.class文件但不使用清單文件。這裏是一個
    例如:

    「C:\ Program Files文件\的Java \ jdk1.6.0_26 \ BIN \ jar.exe的」 -cf 「輸出\ JSON-1.0.jar」 tmp12996/

tmp12996包含預先驗證的.class文件。 您可能遇到除上面列出的問題之外的其他問題。

  1. 一旦從上面的步驟創建jar,請確保它的結構與您預期的一樣。一種檢查方法是將.jar重命名爲.zip,解壓縮並檢查它。如果它不是你需要的,你可以改變結構,然後重新包裝它(儘管我不會做任何重大更改)

  2. 然後將此新建的jar添加到您的BlackBerry應用程序中作爲參考即添加到Java在你的eclipse中構建路徑,並在訂單和導出窗口中檢查它。

  3. 就是這樣!你已準備好出發!運行應用程序!

當您試圖在模擬器中運行時,您可能會面臨錯誤,指示模塊包含驗證錯誤。此問題的一個可能原因是您的庫(原始JAR)包含與J2ME或BB JRE不兼容的API。由於它是針對Java 1.4編譯的(或者您的版本是什麼),因此在獨立構建庫時可能不會收到編譯器錯誤。最好解決這個問題就是將所有代碼移動到您的BB App項目中,然後構建它。這將告訴你所有的問題。您根據需要進行更改,然後將代碼移回庫。如果你沒有你使用的庫的源代碼(比如第三方庫),你可能會倒黴!另外請記住,除了我遇到和解決的問題之外,還有其他問題。

我正在詳細記錄這一點,因爲它花了我很多時間來弄清楚這一切;並且至少可以說是最令人沮喪的!

1

我找到了另一個解決方案。如果在預驗證JAR文件時得到錯誤-1,只運行一次庫應用程序。因爲如果您不運行該應用程序,交付文件夾將爲空。確保該文件夾不是空的。