2013-09-23 9 views
1

난 midlet 응용 프로그램을 이미 실행 중입니다. &이 Nokia S60 SDK에서 실행됩니다. 내 모든 애플 & 심비안 장치에서 실행되도록 내 애플 리케이션을 만들고 싶습니다. 내가 Java_ME_platform_SDK_3.4에서 응용 프로그램을 실행하지만 난 집에 로그인에서 화면을 전환하는 것을 시도하고 코드에서 오류가하려고ClassFormatError : 154>, 예외가 Display 클래스에 걸렸습니다

홈 양식에
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(); 
    } 
} 
follows-로

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) 

심지어 I 시스템 클래스 경로에 * **을 넣어서는 안 * 경고 컴파일 수준을 변경하려고했지만 여전히 예외가 나타납니다.

+0

는이 클래스가 컴파일하는 방법을 설명 할 수? 해결책이 없을 수도 있지만 같은 문제가 있습니다. – Vincent

답변

0

저는 Nokia S60을 모르지만, 컴파일 된 Java 클래스 파일을 "사전 검증"하지 않고 배포 할 때 일반적으로 CLDC 장치에서 발생합니다. 이것은 임베디드 JavaME 디바이스에서 실행하는 데 필요한 추가 빌드 단계입니다. this StackOverflow question을 참조하십시오.

완전한 개발 환경 인 경우 일반적으로 자동으로 설정됩니다 (대상 장치를 선택해야 할 수도 있음). 그러나 Java 파일을 직접 컴파일 한 다음 장치에서 실행하려고하면 충돌이 발생합니다. 이 경우, 당신은 당신의 클래스 파일 % YOUR_WTK_HOME % \ 빈 \의 preverify.exe를 호출해야합니다 (그리고 아마도 ANT 스크립트 또는 유사한 추가) :

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