java存在应用程序最大代码数的问题
我在构建BlackBerry Java应用程序时遇到了一些问题(由4个模块组成)
这一切都始于我试图将一个14MB的文件捆绑到我的一个模块上。编译器无法生成我的应用程序,抛出了一个异常Fatal Internal error: java.lang.NullPointerException
——这不是编译时错误,而是编译器本身的运行时错误。
我试图研究这个问题,发现了来自RIM的以下知识库文章:
这篇文章说,我的应用程序的最大大小不能超过14000KB,而且单个应用程序中可以存在的同级COD文件的数量限制为127。该声明的第二部分令人困惑,因为不清楚它是否指的是整个应用程序中单个模块的最大COD文件数,也就是说,这是否意味着我的应用程序中每个模块的COD文件数不能超过127个(所以总共是4*127个),或者我的应用程序中所有代码的总数(对于所有4个模块)不应超过127
无论如何,我已经将14MB文件的大小减少到了5.5MB,现在我能够构建应用程序,但仍然无法运行它
我进一步实验的结果让我更加困惑——以下是:
+-----------+------------+---------------------+----------------------------------------------+ | 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
错误是由于我的模块中的代码数(128)造成的),但是我对第二个(4400KB)和第三个(5500KB)完全感到困惑。第二个应用程序的代码总数大于127–130,但它构建得很好。第三个模块的代码总数大于127,但最大模块中的代码数小于127,但它不会启动。我知道,当我在操作系统版本低于我使用的JDE complier版本的设备上运行时,可能会引发“Class…not found”异常。这里的情况并非如此
我相信我的文件和它生成的代码数量已经达到了极限。有人知道这个限制是多少吗
谢谢
共 (0) 个答案