2013-09-23 1 views
1

Я запускаю приложение с мидлетом, которое уже развернуто & работает на Nokia S60 sdk. Я хочу, чтобы приложение запускалось на каждом устройстве java &. Я попытался запустить приложение на Java_ME_platform_SDK_3.4, но получаю сообщение об ошибке в коде, когда я пытаюсь переключить экран от Вход на главную страницуClassFormatError: 154>, Исключено, пойманное в классе отображения

HomeForm homeForm=new HomeForm(objLoginMidlet, objCommonBean); 
    Display.getDisplay(objLoginMidlet).setCurrent(homeForm); 

код в домашней форме является следующим образом-

class HomeForm extends Form 
{ 
    public HomeForm(LoginMidlet objLoginMidlet,CommonBean objCommonBean) 
    { 
     this.objLoginMidlet=objLoginMidlet; 
     this.objCommonBean=objCommonBean; 
     setTimer(); 
     initHomeForm(); 
    } 
} 

My MIDP установлен в 2.1. Даже я изменил его до 2,0, но все еще получаю исключение следующей

предупреждения * * *Недоверенных пользовательских классов никогда не должен ставить * ** на пути системного класса

TRACE: <at java.lang.Error: ClassFormatError: 154>, Exception caught in Display class 
java.lang.Error: ClassFormatError: 154 
- java.lang.Class.invoke_verify(), bci=0 
- java.lang.Class.initialize(), bci=100 
- ezypoint.forms.LoginForm.register(LoginForm.java:202) 
- ezypoint.forms.LoginForm.commandAction(LoginForm.java:91) 

Даже я попытался изменить уровень компиляции, но все же исключение появляется.

+0

Не могли бы вы объяснить, как был составлен этот класс? У меня может не быть решения, но у меня такая же проблема. – Vincent

ответ

0

Я не знаю Nokia S60, но обычно это происходит на устройствах CLDC, когда скомпилированные файлы классов Java развернуты без их предварительного предупреждения. Это дополнительный шаг сборки, который требуется для запуска на встроенных устройствах JavaME. См. this StackOverflow question.

Если у вас есть полномасштабная среда разработки, это обычно настраивается автоматически (возможно, вам нужно выбрать целевое устройство коррекции). Однако, если вы попытаетесь скомпилировать файлы Java самостоятельно, а затем запустите их на своем устройстве, это приведет к сбою. В этом случае вам нужно вызвать% YOUR_WTK_HOME% \ Bin \ preverify.exe с файлами класса (и, вероятно, добавить к вашему ANT сценария или аналогичный):

%YOUR_WTK_HOME%\bin\preverify.exe -classpath <your-classpath> -d <your-destination-dir> <your-source-directory>