2013-01-22 56 views
2

我得到這個錯誤,當我包括番石榴-11.0-rc1.jar其中包含包com.google.common.*。但是,當我嘗試將它打包,它給我的錯誤:錯誤預驗證類com.google.common.collect.Ordering在黑莓

Error preverifying class com.google.common.collect.Ordering MyApp line 0
BlackBerry Packaging Problem

誰能告訴我可以做些什麼來解決這個問題?提前致謝。

回答

3

確保該庫中的類與Java-ME兼容。請記住CLDC是Java SE的一個子集,等效的桌面編譯級別爲1.2

如果它們是兼容的,那麼要解決預校驗錯誤,您必須首先預驗證您的jar。您可能想知道什麼預驗證是。 this answer有一個很好的解釋。

預驗證通常由Eclipse插件完成(或應該完成),但有些版本不需要。如果這是你的情況,你應該手動進行。在您的JDE文件夾中,有一個名爲preverify的工具。您可以在通常看起來像這樣在Windows機器的路徑找到它:

(1) C:\Program files\Research In Motion\BlackBerry JDE <vers>\bin\ 

您還需要一個名爲net_rim_api.jar庫位於路徑是這樣的:

(2) C:\Program files\Research In Motion\BlackBerry JDE <vers>\lib\net_rim_api.jar` 

這是所有您需要啓動該命令。打開命令行並將dir更改爲bin文件夾(1)。然後鍵入:

preverify -classpath <classpath for lib> -d <output directory> <file to preverify> 

其中:

  • <classpath for lib>是(2)
  • <output directory>的路徑,在預驗證的罐子將被保存的目錄。
  • <file to preverify>是要將預驗證(你的情況番石榴11.0 rc1.jar)

文件的絕對路徑。如果一切順利,現在你將有一個新的jar在<output directory>這是稍大於輸入的jar文件。這是你應該包括在你的項目中的一個。 preverify工具不會更改您的原始jar。

+0

謝謝你的解釋史密斯。我的Eclipse插件做了預驗證。我應該單獨預先驗證jar文件嗎? –

+0

它給了我以下錯誤:錯誤preverifying類com.google.common.collect.Ordering java/lang/NoClassDefFoundError:java/util/Comparator現在該怎麼辦? –

+0

我從這裏添加了另一個.jar文件:https://code.google.com/p/guava-libraries/ 但是我無法在我的黑莓項目的java代碼中導入com.google.common。*包。請幫我找到一個解決方案。 –