当我收录包含com.google.common.*
包的 guava-11.0-rc1.jar 时出现此错误。但是当我尝试打包它时,它给了我错误:
预先验证com.google.common.collect类的错误。订阅MyApp第0行 BlackBerry Packaging Problem
有人能告诉我怎么做才能解决这个问题?提前谢谢。
答案 0 :(得分: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>
是保存预验证jar的目录。<file to preverify>
是您要预验证的文件的绝对路径(在您的情况下为guava-11.0-rc1.jar)如果一切顺利,现在你将在<output directory>
中有一个比输入jar文件略大的新jar。这是您应该包含在项目中的那个。 preverify
工具不会更改原始jar。