MIDP 2.0 버전 문제 : $ 방법은 $ 유형에 대해 정의되지 않았습니다.

StackOverflow https://stackoverflow.com/questions/2415778

  •  19-09-2019
  •  | 
  •  

문제

나는 웹에서 이미지를 가져오고, 크기를 조정하고, 전화로 저장하고, 표시하는 몇 가지 "고급"일을하는 미드렛을 썼습니다.

이 모든 것은 Nokia S60 3rd Edition FP1 에뮬레이터에서 완벽하게 작동합니다. 이 장치에는 MIDP 2.0 및 CLDC 1.1 지원 (파일을 저장하기 위해 필요한 JSR75)이 있습니다. 또한 Nokia E71 (물리적 장치)에서도 작동합니다.

그런 다음 다른 여러 에뮬레이터에서 미드 렛을 실행하려고했습니다. 그 중 하나 인 Java ME SDK 3.0의 DefaultCldcjtwiphone2는 Midp 2.0 및 CLDC 1.1 지원을 주장합니다. JSR75가 없으므로 "파일 연결이 유형으로 해결 될 수없는 이유"를 설명합니다.

그러나 이것은 왜 list.deleteall (), string.equalsignorecase (string)와 다른 몇 가지가 정의되지 않은 이유를 설명하지 않습니다.

내가 얻는 실제 오류 :

  • 메소드 CEIL (Double)은 수학 유형에 대해 정의되지 않았습니다.
  • 방법 deleteall () 메소드는 유형 목록에 대해 정의되지 않았습니다.
  • 이 메소드 equalsignorecase (String)는 String 유형에 대해 정의되지 않았습니다.
  • getWidth () 메소드는 표시 가능한 유형에 대해 정의되지 않았습니다.

Midp 2.0 (예 : JSR118) API를 볼 때 (http://java.sun.com/javame/reference/apis/jsr118/), 나는이 모든 방법이 존재하는 것을 명확하게 볼 수 있으며, "이후"태그는 Midp 2.0 또는 CLDC 1.1입니다.

나의 의문: MIDP 2.0 지원이있는 에뮬레이터가 모든 MIDP 2.0 방법에 액세스 할 수없는 이유는 무엇입니까? 또는 또는 내가 무엇을 잘못하고 있습니까?

도움이 되었습니까?

해결책

CLDC 1.1에 정의 된 메소드를 사용하는 것처럼 들립니다. 사용중인 에뮬레이터는 CLDC 1.0 만 지원해야합니다 (이것은 확실히 부족을 설명 할 것입니다. equalsIgnoreCase() 그리고 관련된 모든 것 double 그리고 float 기초 요소). 전체 API를 참조하십시오 여기. 그리고 봐라 여기 1.0과 1.1의 차이 목록.

편집 : 장치의 CLDC 버전을 확인하는 몇 가지 방법 :

1) 설명대로 Microedition.configuration 시스템 속성을 확인하십시오 여기.

System.out.println("The CLDC version is:  " + System.getProperty("microedition.configuration"));

2) 1.1에서만 지원되는 클래스의 존재를 점검하십시오.

try {
    Class.forName("java.lang.ref.WeakReference");
    System.out.println("It's CLDC 1.1");
} catch (ClassNotFoundException e) {
    System.out.println("It's CLDC 1.0");
}

다른 팁

Eclipse는 CLDC_1.0.JAR 및 CLDC_1.1.jar (및 MIDP_2.0.JAR 및 MIDP_2.1.JAR)를 참조하십시오.

수정하려면 : 창으로 이동> 환경 설정> Java Me> 장치 관리> 당신의 장치 > 편집 ...> 라이브러리> CLDC_1.0.jar> 제거

자세한 내용은 여기에서 찾을 수 있습니다. http://thompsonng.blogspot.com/2009/09/j2me-esting-eclipse-to-us-cldc-11.html

DefaultCldcjtwiphone2와 같이 CLDC-1.1을 지원하는 에뮬레이터 장치를 선택한 후에도 CLDC-1.0 전용 전화를 모방하도록 구성 할 수 있습니다.

적어도 그것은 NetBeans의 프로젝트 속성이 어떻게 생겼는지입니다.

SDK 1.6.0_17 + ECLIPSE EE 3.5.1 + JAVA_ME_ME_PLATFORM_SDK_3.0 EA에서 업데이트 한 후 오늘도 같은 문제가 발생했습니다 (11/03/10). TO : SDK 1.6.0_18 + ECLIPSE EE 3.5.2 + JAVA_ME_PLATFORM_SDK_3.0.

메소드 CEIL (Double)은 수학 유형에 대해 정의되지 않은 방법으로 메소드 플로어 (Double)는 수학 유형에 대해 정의되지 않습니다. 유형 수학에 대한 정의되지 않았습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top