2013-07-09 2 views
1

API 레벨을 8로 설정하는 동안 API 레벨 14가 필요한 메소드를 사용하려고했습니다.이 부분 (예 : @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH))을 처리하지 않으면 Eclipse에서 컴파일하지 않아야하지만 Eclipse 이 시간에 불평하지 않았고 성공적으로 컴파일 해주었습니다. 런타임 중에 일부 오래된 장치에서 NoSuchMethodError가 발생했습니다.NoSuchMethodError를 방지하는 android-way?

신선한 Eclipse를 사용하여 다른 새 컴퓨터에 똑같은 코드를 복사했으며 Eclipse가이 시간에 불평했습니다. 왜 그런가요? 이클립스 신뢰할 수없는 것 ... 내가 사용하는 모든 메서드가 같거나 낮은 API 수준 아래에 있는지 확인하는 데 사용할 수있는 다른 타사 응용 프로그램이 있습니까? 어쨌든 내가 이클립스를 확인하도록 강요 할 수 있다면? 내가 사용하는 모든 단일 메서드에 대해 API 수준을 확인할 수있는 방법은 없습니다. 도움

답변

0
if (android.os.Build.VERSION.SDK_INT >= 13) { 
      Point size = new Point(); 
      display.getSize(size); 
      width = size.x; 

     } else 
      width = display.getWidth(); 
+0

에 대한

덕분에 왜, 어떻게이 작품에 대한 설명을 추가하십시오. –

+0

if (android.os.Build.VERSION.SDK_INT> = 13) 버전을 확인하십시오. 사용자가 가지고있는 버전을 확인한 다음 원하는 방법을 사용할 수 있습니다. – dasdasd

+0

제 질문이 충분히 명확하지 않았던 것 같습니다. 나는 사용자의 SDK 버전을 확인하는 방법을 안다. 제 질문은'if (android.os.Build.VERSION.SDK_INT> = 13)'을 끄면 이클립스는'호출에 API 레벨 14 (현재 최소값은 8) '과 같은 오류를 주어야하고 컴파일을 중단해야합니다. 앱. 어떤 이유로 든 – user1865027

관련 문제