У меня есть некоторые проблемы при создании моего Java-приложения BlackBerry (состоит из 4 модулей)
Все началось, когда я попытался связать файл размером 14 МБ с одним из моих модулей. Компилятор не смог создать мое приложение, выдав исключение Fatal Internal error: java.lang.NullPointerException
- это была не ошибка времени компиляции, а ошибка времени выполнения, исходящая от самого компилятора.
Я попытался исследовать эту проблему и нашел следующую статью базы знаний от RIM:
http://supportforums.blackberry.com/t5/Testing-and-Deployment/The-maximum-size-of-a-BlackBerry-smartphone-application/ta-p/502534
В статье говорится, что максимальный размер моего приложения может составлять не более 14000 КБ, а также, что ограничение на количество одноуровневых файлов ХПК, которые могут существовать в одном приложении, составляет 127. Вторая часть этого утверждения вводит в заблуждение, поскольку неясно, относится ли это к максимальному количеству COD-файлов для всего приложения только для одного модуля, т.е. означает ли это, что у меня может быть не более 127 на каждый модуль, который есть в моем приложении (так что это 4 * 127 итого) или общее количество всех ХПК, которые есть в моем приложении (для всех 4 модулей), должно быть не более 127.
В любом случае, я уменьшил размер моего файла 14 МБ до 5,5 МБ, и теперь я могу собрать приложение, но все равно не могу его запустить.
Результаты моих дальнейших экспериментов смутили меня еще больше - вот они:
+-----------+------------+---------------------+----------------------------------------------+
| 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.
Первый (4000 КБ) и последний (6000 КБ) эксперименты имеют для меня смысл (при условии, что ошибка rejected by the device
связана с количеством ХПК (128) в моем модуле), однако я полностью озадачен вторым (4400 КБ) и третий (5500 КБ). У второго общее количество наложенных платежей для приложения больше 127 - 130, однако, оно строится просто отлично. Третий имеет общее количество COD больше 127, но количество COD в самом большом модуле меньше 127, но не запускается. Я знаю, что исключение «Класс… не найден» может быть вызвано при запуске на устройстве с версией ОС ниже, чем версия компилятора JDE, которую я использовал. Здесь дело не в этом.
Я полагаю, что я достигла определенного предела с моим файлом и количеством генерируемых им ХПК. Кто-нибудь знает, что это за предел ???
Спасибо!