2012-02-01 35 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,只运行一次库应用程序。因为如果您不运行该应用程序,交付文件夹将为空。确保该文件夹不是空的。