我在构建BlackBerry Java Application(包含4个模块)时遇到了一些问题
这一切都是在我尝试将14MB文件捆绑到我的模块之一时开始的。编译器无法构建我的应用程序抛出异常Fatal Internal error: java.lang.NullPointerException
- 这不是编译时错误,它是来自编译器本身的运行时错误。
我试图研究这个问题,并从RIM找到了以下知识库文章:
文章说我的应用程序的最大大小不能超过14000KB,并且单个应用程序中可存在的兄弟COD文件数量的限制是127.本声明的第二部分令人困惑,因为目前尚不清楚它是指单个模块的整个应用程序的COD文件的最大数量,即是否意味着我的应用程序中每个模块的最大数量不超过127个(所以它是4 * 127总计),或我在我的应用程序中所有COD的总数(对于所有4个模块)不应超过127个。
无论如何,我已将14 MB文件的大小减小到5.5 MB,现在我可以构建应用程序,但我仍然无法运行它。
我进一步实验的结果让我更加困惑 - 这里是:
+-----------+------------+---------------------+----------------------------------------------+ | File Size | Total CODs | Largest Module CODs | Result | +-----------+------------+---------------------+----------------------------------------------+ | 4000KB | 123 | 88 | OK | | | | | | | 4400KB | 130 | 95 | OK | | | | | | | 5500KB | 153 | 118 | 6.0/7.0 – Class | | | | | ‘net.rim.device.api.crypto.SHA1Digest’ | | | | | not found | | | | | 5.0 – Class | | | | | ‘javax.wireless.messaging.MessageConnection’ | | | | | not found | | | | | | | 6000KB | 163 | 128 | Javaloader Error loading Module: | | | | | The specified module was rejected by the | | | | | device and cannot be loaded | +-----------+------------+---------------------+----------------------------------------------+ *-Other 3 modules always had the same total numbers of CODs – 35.
第一个(4000KB)和最后一个(6000KB)实验对我有意义(假设rejected by the device
错误是由于我的模块中的COD数量(128)),但是我完全不知道第二个(4400KB)和第三个(5500KB)。第二个应用程序的COD总数大于127 - 130,但它建立得很好。第三个COD的总数大于127,但最大模块中的COD数量小于127,但是没有启动。我知道当我运行的操作系统版本低于我使用的JDE编译器版本时,可能会抛出“Class ... not found”异常。这不是这种情况。
我相信我的文件和它产生的COD数量受到了限制。有谁知道这个限制是什么???
谢谢!