BlackBerry - 在自己的项目中使用自己的 JAR 文件
Posted
技术标签:
【中文标题】BlackBerry - 在自己的项目中使用自己的 JAR 文件【英文标题】:BlackBerry - use own JAR file in own project 【发布时间】:2012-04-16 03:26:42 【问题描述】:(我已经解决了我的问题,因此对其进行了编辑,使其看起来更像是一篇博客文章 - 最终的工作解决方案已作为“答案”放在下面。)
目标
我想将我们的 BB 库(v4.5 或 v5.0)打包成 JAR 格式,这样我们就可以在不提供库源代码的情况下将应用程序源代码提供给客户。
解决方法
目前,我的 SDK 和我的应用程序都使用源代码设置为同一工作区中的不同项目。所有项目都编译。我的 SDK 设置为库项目,我的应用程序设置为应用程序。
在每个应用程序中,我将 SDK 项目添加到构建路径中。
Eclipse 完美地处理构建,创建各种 COD 文件。我将 COD 文件复制并解压缩到同一个文件夹中,运行 updatejad
以合并 JAD 文件,最终得到许多完美安装的 COD 文件。
问题是 - 库必须在源代码中。
遇到的问题
在这方面有许多相互矛盾的信息来源。这个过程很简单,但没有很好的记录。在一些尝试中,我遇到了以下问题:
-
需要预先验证的 JAR 文件(可能是未来另一篇综合文章的主题)
JAR 文件需要来自签名工具的 RIMAPPSA2“秘密”签名
尽管签名工具确认成功,但最终构建的应用仍被视为“未签名”
最终构建的应用找不到 SDK 代码(JAR 文件未在构建路径设置中导出)
不幸的是,似乎从 RIM 引用的主要文档不正确 - 详情如下。
(我希望可以通过以下一长串链接来交叉引用这个问题?)
*** 链接:
Blackberry: Verificattion error when using Library project as External Jar https://***.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这个提供了其他链接 - 非常有用:
Handling dependencies in blackberry development这些不太有用:
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?轮辋:
http://docs.blackberry.com/en/developers/deliverables/12002/Add_jar_dependency_923677_11.jsp【问题讨论】:
优秀的帖子,非常感谢理查德 【参考方案1】:我已经设法解决了这个问题,所以编辑了这个问题,并将最后的过程和注释放在了这里:
1) 按照此链接 (Richard Schilling’s Professional Weblog)
将 SDK 项目更改为 MIDLET 应用程序 BlackBerry 支持论坛有一个帖子 (Working with Libraries) 错误地建议开发人员将项目设置为 APPLICATION。 如果您按照这些说明进行操作,您可能会收到一个签名错误,需要我们不允许签名的臭名昭著的 RIMAPPSA2 签名。2) 在 Eclipse 中构建 SDK 项目。正常打包并签署项目。
这将在可交付成果文件夹 (....deliverables\Standard\5.0.0) 中创建一个 JAR 文件3) 将生成的 JAR 文件复制到您的项目中,并更新构建路径以使用该 JAR。
您可能只需将其添加为外部 JAR 即可获得工作结果,但我现在更喜欢将 JAR 文件与我的项目一起存储。4) 同样在构建路径设置中,转到“订购和导出”选项卡并选中复选框以导出此 JAR 文件。
警告:在这一点上,很多用户似乎遇到了 Eclipse 告诉您“如果项目 0 导出一个小程序 jar,它必须有一个 jad 文件文件”的错误。如果您未将 SDK 项目的类型设置为 MIDLET,则会发生此错误。
如果您收到此错误,请检查项目的构建类型。
如果您已将其正确设置为 MIDLET,请尝试编辑 JAR 文件中的清单,以删除行 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:记得在重新导入 JAR 文件的新版本后刷新您的项目,如果您必须返回第 1 步(否则 Eclipse 将继续使用您刚刚覆盖的旧版本)。
总结一下:
-
将 SDK 构建为 MIDLET。
打包并签署 SDK。
导入应用程序项目并确保选中复选框以在构建路径设置中将其导出。
如果您对 RIMAPPSA2 签名有疑问,请参阅第 1 步。
当你知道怎么做时很容易 - 但这花了我很多天才弄好?!?
【讨论】:
这是另一个可能有用的link。以上是关于BlackBerry - 在自己的项目中使用自己的 JAR 文件的主要内容,如果未能解决你的问题,请参考以下文章
LWUIT 应用程序无法在 Blackberry 设备中启动
Blackberry - 如何实现ListField Smooth Scrolling?