Blackberry 5.0 - 添加对Java Library Project的引用

Pav*_*rni 3 blackberry preverify

在我看来,我想要实现的目标非常简单,但却变得令人难以置信的痛苦.

我有ProjectA,它是一个BlackBerry Application项目.我有ProjectB,这是一个Java库项目.我想从ProjectA引用ProjectB.我可以添加一个引用,但是当我运行ProjectA时,它不起作用.我有两个项目的源代码,都使用Java编译器1.4编译

我尝试了很多东西,但由于某种原因一切都失败了:

1. ProjectB上的pre-verify.exe 失败并显示错误"JAR文件创建失败,错误为-1"我可以看到已经创建了cod和jar文件,但是当将jar文件添加到ProjectA并运行它时,它没有不行.不确定我是否需要添加.cod文件.

2.创建新的BlackBerry Library Project并在ProjectA中引用它 我创建一个新项目ProjectC,然后将jar的jar添加到它.然后我在ProjectA中添加对ProjectC的引用.但是我无法从ProjectB导入类

请提出一条出路.我正在使用Eclipse插件并依赖Eclipse的构建功能

Pav*_*rni 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. 如果你很幸运,你不会遇到任何问题,你就会完成.但我不够幸运.我得到了以下错误

错误:没有这样的文件或目录.JAR文件创建失败,错误为-1

这有两个可能的原因:

  • jar.exe未添加到PATH中.如果是这样,请将它(在JAVA安装目录中找到)添加到PATH
  • jar.exe上的cvfm或-cfm选项无法执行.我不知道原因,但修复此问题的方法是使用-cf选项,指向.class文件但不使用清单文件.这是一个
    例子:

    "C:\ Program Files\Java\jdk1.6.0_26\bin\jar.exe"-cf"output\json-1.0.jar"tmp12996 /

tmp12996包含预验证的.class文件.除了我上面列出的问题之外,您可能遇到不同的问题.

  1. 从上面的步骤创建jar后,确保它的结构符合您的预期.检查的一种方法是将.jar重命名为.zip,解压缩然后检查它.如果它不是你需要的,你可以改变结构,然后重新包装它(我不会做任何重大改变)

  2. 然后将这个新构建的jar添加到您的BlackBerry应用程序作为参考,即添加到Eclipse中的Java Build Path并在Order and Export窗口中检查它.

  3. 而已!你已准备好出发!跑你的应用程序!

当您尝试在模拟器中运行时,可能会遇到错误,指示模块包含验证错误.导致此问题的一个可能原因是您的库(原始JAR)包含与J2ME或BB JRE不兼容的API.在单独构建库时,可能不会出现编译器错误,因为它是针对Java 1.4(或任何版本)编译的.最好的解决问题是将所有代码移动到BB App项目中然后构建它.这将提前告诉你所有问题.您根据需要进行更改,然后将代码移回库中.如果您没有使用的库的源代码(如第三方库),您可能会运气不好!还记得可能还有其他问题,而不是我遇到和解决的问题.

我正在详细记录这一点,因为我花了很多时间才弄清楚这一切; 至少可以说,最令人沮丧的是!