gpt4 book ai didi

Blackberry 5.0 - 添加对 Java 库项目的引用

转载 作者:行者123 更新时间:2023-12-01 23:10:58 26 4
gpt4 key购买 nike

在我看来,我想要实现的目标非常简单,但却变得非常痛苦。

我有 ProjectA,它是一个 BlackBerry 应用程序项目。我有 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,然后将 ProjectB 的 jar 添加到其中。然后我在 ProjectA 中添加对 ProjectC 的引用。但我无法从 ProjectB 导入类

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

最佳答案

自己想出答案。在这里发布以防有人偶然发现。步骤如下:

  1. 创建您的库并导出为 JAR(或下载第 3 方 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 中。如果是这样,添加它(在您的 JAVA 中找到安装目录)到PATH
  • jar.exe 上的 cvfm 或 -cfm 选项无法执行。我不知道原因,但解决此问题的方法是使用 -cf 选项,指向 .class 文件但不要使用 list 文件。这是一个
    示例:

    "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 项目中,然后构建它。这会提前告诉你所有的问题。您根据需要进行更改,然后将代码移回库。如果您没有正在使用的库(如 3rd 方库)的源代码,那么您可能不走运!还要记住,除了我遇到并解决的问题之外,可能还有其他问题。

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

关于Blackberry 5.0 - 添加对 Java 库项目的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9092242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com