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

时间:2012-02-01 07:20:22

标签: 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的构建功能

2 个答案:

答案 0 :(得分: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. 如果你很幸运,你不会遇到任何问题,你就会完成。但我不够幸运。我收到了以下错误

  4.   

    错误:没有这样的文件或目录。 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. 就是这样!你已准备好出发!跑你的应用程序!

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

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

答案 1 :(得分:1)

我找到了另一个解决方案。如果在预先确认JAR文件时收到错误-1,则只需运行一次库应用程序。因为如果您不运行该应用程序,则可交付物文件夹将为空。确保此文件夹不为空。