BlackBerry - 在自己的项目中使用自己的 JAR 文件

标签 blackberry blackberry-eclipse-plugin blackberry-jde

(我已经解决了我的问题,因此对其进行了编辑,使其看起来更像博客文章 - 最终的工作解决方案已作为“答案”放置在下面。)

目标

我想将我们的 BB 库(v4.5 或 v5.0)打包成 JAR 格式,这样我们就可以向客户提供应用程序源代码,而无需提供库源代码。

解决方法

目前,我有我的 SDK 和我的应用程序,所有这些都使用源代码进行设置,作为同一工作区中的不同项目。所有项目都编译。我的 SDK 设置为库项目,我的应用程序设置为应用程序。

在每个应用程序中,我将 SDK 项目添加到构建路径。

Eclipse 完美地处理构建,创建各种 COD 文件。我将 COD 文件复制并解压缩到同一文件夹中,运行 updatejad 来合并 JAD 文件,最终得到许多可以完美安装的 COD 文件。

问题是 - 该库需要位于源代码中。

遇到的问题

这方面的信息来源有很多相互矛盾的地方。该过程很简单,但没有很好的记录。在一些尝试中,我遇到了以下问题:

  1. 需要预先验证的 JAR 文件(也许是将来另一篇综合文章的主题)
  2. JAR 文件需要签名工具的 RIMAPPSA2“ secret ”签名
  3. 尽管签名工具确认成功,但最终构建的应用仍被视为“未签名”
  4. 最终构建的应用未找到 SDK 代码(JAR 文件未在构建路径设置中导出)

遗憾的是,RIM 引用的主要文档似乎不正确 - 详细信息如下。

<小时/>

(我希望可以将这个问题与下面的一长串链接交叉引用?)

StackOverflow 链接:

这个提供了其他链接 - 非常有用:

这些不太有用:

RIM:

最佳答案

我已经设法解决了这个问题,因此编辑了问题,并将最终的过程和注释放在此处:

1) 按照此链接 ( Richard Schilling’s Professional Weblog ) 将 SDK 项目更改为 MIDLET 应用程序

  • BlackBerry 支持论坛上有一篇帖子 ( Working with Libraries ) 错误地建议开发人员将项目设置为应用程序。
  • 如果您按照这些说明进行操作,您可能会收到签名错误,需要使用臭名昭著的 RIMAPPSA2 签名,而我们无权签署该签名。

2) 在Eclipse中构建SDK项目。正常打包并签署项目。

  • 这将在可交付成果文件夹 (....deliverables\Standard\5.0.0) 中创建一个 JAR 文件

3) 将生成的 JAR 文件复制到您的项目中,并更新构建路径以使用该 JAR。

  • 您可能只需将其添加为外部 JAR 即可获得工作结果,但我现在更喜欢将 JAR 文件与我的项目一起存储。

4) 同样在构建路径设置中,转到“Order & Export”选项卡并选中复选框以导出此 JAR 文件。

警告:此时,许多用户似乎遇到了 Eclipse 告诉您“项目 {0} 必须有一个 jad 文件,如果它导出了 millet jar”的错误。如果您未将 SDK 项目的类型设置为 MIDLET,则会发生此错误。

注意:关于 RIMAPPSA2 签名,我找到了一些有关消除该要求的信息。这些步骤看起来很奇怪,但就签名阶段而言,它们对我来说很有效。不幸的是,对我来说,该应用程序无法在手机上运行(仍然需要一些签名)。但这些步骤可能对其他人有帮助,可以在 Frustrations with Blackberry Developer plugins for Eclipse 找到。

注意 2: 如果您必须返回步骤 1,请记住在重新导入新的 JAR 文件构建后刷新您的项目(否则 Eclipse 将继续使用您刚刚覆盖的旧项目) )。

<小时/>

总结一下:

  1. 将 SDK 构建为 MIDLET。
  2. 打包并签署 SDK。
  3. 导入到应用程序项目中,并确保在构建路径设置中选中将其导出的复选框。

如果您对 RIMAPPSA2 签名有疑问,请参阅步骤 1。

当你知道怎么做时很容易 - 但这花了我很多天才做对?!?

关于BlackBerry - 在自己的项目中使用自己的 JAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9976940/

相关文章:

java - BlackBerry drawTexturedPath 旋转 将 anchor 移动到图像中心

java - 对齐黑莓的自定义编辑字段时出现问题

java - J2ME BlackBerry 从数组类创建实例

blackberry - 打包 Blackberry OAuth 应用程序抛出错误

blackberry - 是否可以在 blackberry OS 6,7 和 7.1 中运行 blackberry OS 10

blackberry - Screen.invalidate() 和 Screen.invalidateLayout() 有什么区别

http - 套接字连接是否比 Blackberry 上的 http 更快?

java - 将数据库中的多个值添加到 Rich List Blackberry

blackberry - 如何在 BlackBerry 中附加并获取特定列表项 ID?

web-services - 黑莓模拟器可以连接网络服务,但真机不能