(我已经解决了我的问题,因此对其进行了编辑,使其看起来更像博客文章 - 最终的工作解决方案已作为“答案”放置在下面。)
目标
我想将我们的 BB 库(v4.5 或 v5.0)打包成 JAR 格式,这样我们就可以向客户提供应用程序源代码,而无需提供库源代码。
解决方法
目前,我有我的 SDK 和我的应用程序,所有这些都使用源代码进行设置,作为同一工作区中的不同项目。所有项目都编译。我的 SDK 设置为库项目,我的应用程序设置为应用程序。
在每个应用程序中,我将 SDK 项目添加到构建路径。
Eclipse 完美地处理构建,创建各种 COD 文件。我将 COD 文件复制并解压缩到同一文件夹中,运行 updatejad
来合并 JAD 文件,最终得到许多可以完美安装的 COD 文件。
问题是 - 该库需要位于源代码中。
遇到的问题
这方面的信息来源有很多相互矛盾的地方。该过程很简单,但没有很好的记录。在一些尝试中,我遇到了以下问题:
- 需要预先验证的 JAR 文件(也许是将来另一篇综合文章的主题)
- JAR 文件需要签名工具的 RIMAPPSA2“ secret ”签名
- 尽管签名工具确认成功,但最终构建的应用仍被视为“未签名”
- 最终构建的应用未找到 SDK 代码(JAR 文件未在构建路径设置中导出)
遗憾的是,RIM 引用的主要文档似乎不正确 - 详细信息如下。
<小时/>(我希望可以将这个问题与下面的一长串链接交叉引用?)
StackOverflow 链接:
- Blackberry: Verificattion error when using Library project as External Jar
- https://stackoverflow.com/questions/6134940/how-to-use-external-library-jar-file-in-blackberry
- Blackberry 5.0 - Add reference to a Java Library Project
- How to add external jar or zip file in the Blackberry project
- Blackberry Apps - Importing a code-signed jar into an application project
- How to add library project with the current development project in blackberry
这个提供了其他链接 - 非常有用:
这些不太有用:
- In Blackberry, can we create common library that can be used by different applications?
- BlackBerry Facebook SDK jar file
- Adding and Testing Compatibility of External Jar to Blackberry Project
- How to attach Jar in Blackberry
- BlackBerry RIMAPPSA2 signing key required -- why?
- Is there a list of classes, methods and API which will trigger RIMAPPSA2 permission when signing Blackberry application?
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,则会发生此错误。
如果您收到此错误,请检查项目的构建类型。
如果您已将其正确设置为 MIDLET,请尝试编辑 JAR 文件内的 list ,以删除行
MicroEdition-Profile- MIDP-2.0
。完整详细信息在此链接中给出:"Project {0} has to have a jad file file if it exports a mildlet jar" error appears in BlackBerry Java Plug-in for Eclipse
注意:关于 RIMAPPSA2 签名,我找到了一些有关消除该要求的信息。这些步骤看起来很奇怪,但就签名阶段而言,它们对我来说很有效。不幸的是,对我来说,该应用程序无法在手机上运行(仍然需要一些签名)。但这些步骤可能对其他人有帮助,可以在 Frustrations with Blackberry Developer plugins for Eclipse 找到。
注意 2: 如果您必须返回步骤 1,请记住在重新导入新的 JAR 文件构建后刷新您的项目(否则 Eclipse 将继续使用您刚刚覆盖的旧项目) )。
<小时/>总结一下:
- 将 SDK 构建为 MIDLET。
- 打包并签署 SDK。
- 导入到应用程序项目中,并确保在构建路径设置中选中将其导出的复选框。
如果您对 RIMAPPSA2 签名有疑问,请参阅步骤 1。
当你知道怎么做时很容易 - 但这花了我很多天才做对?!?
关于BlackBerry - 在自己的项目中使用自己的 JAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9976940/