NoClassDefFoundError при предварительной проверке файлов JAR в BlackBerry
Я также задавал этот вопрос на форумах поддержки BlackBerry в разделе " NoClassDefFoundError во время предварительной проверки файлов JAR в BlackBerry".
Я добавляю библиотечные файлы (jar-файлы) в свой проект BlackBerry и пытаюсь запустить его. Но это дает мне следующую ошибку: Ошибка!: Отсутствует карта стека на метке 77. Поэтому я пытаюсь выяснить проблему и найти эту ссылку: Preverify Link
Поэтому я попытался решить эту проблему, используя preverifier. Поскольку я использую плагин BlackBerry Eclipse, я попытался следующим образом:
- Скопируйте файл jar в папку bin моих плагинов eclipse 6.0 (eclipse-SDK-3.5.2-win32\eclipse\plugins\net.rim.ejde.componentpack6.0.0_6.0.0.29\components\bin)
Выполните следующую команду в командной строке:
preverify -classpath "<path to 6.0.0.29 SDK>\net_rim_api.jar" "ArcotOTP-Lib-Java-Test-2.0.0.jar"
Но после запуска этой строки я получаю следующую ошибку:
Ошибка предварительной проверки класса Mypackage.API$1 java/lang/NoClassDefFoundError: Mypackage/Test
1 ответ
Устройства BlackBerry работают на платформе Java-ME, поэтому вы не можете использовать современные функции Java. Типичные Java-файлы JAR в наши дни используют новые функции, которые не имеют обратной совместимости с платформой Java-ME. Некоторые проекты делают обратную совместимость, например, Bouncy Castle. Но это редко.
На этот вопрос, дублированный на форумах BlackBerry, также ответили на форумах BlackBerry, которые я здесь опишу:
simon_hain:
и это библиотека j2me?
Ариндам Мукерджи:
Нет, это библиотека Java. Все классы в основном являются классами Java. Та же библиотека, которую я использую для Android также и она отлично работает для меня..
simon_hain:
BlackBerry использует J2ME в качестве базы, Android использует J2SE. Вы не можете использовать библиотеку Android в BlackBerry, если не перекомпилируете ее (и не исправите все ошибки из-за отсутствия отражения, списков и т. Д.)