2012-06-01 2 views
1

얼마 전 Android 앱을 작성했으며 업데이트하려고합니다. 코드 섹션에서 빌드하고 싶습니다. 전화 번호가 3.0보다 작 으면 한 가지 방법을 사용하고 그렇지 않은 경우 다른 방식으로 수행하십시오.Android 타겟 SDK 버전 및 전화

내 빌드 대상이 project.properties 파일에서 11로 설정되었지만 여전히 Android 버전 < 3.0에서 실행되는 것으로 보입니까? 이게 정상인가? 어떤 시점에서 충돌이 발생합니까? 모든 것이 작동하는 것 같습니다 ... 내 minSDKVersion은 8이지만 Android 2.3.3에서 Android 3.0 코드로이 앱을 실행하면 어떻게됩니까?

답변

0

나는 바보 같은 순간을 보내고 있다고 생각합니다. minSDK를 8로 설정하면 8보다 새로운 것은 정상적으로 작동합니다. 빌드 타겟을 11로 설정 한 다음 11보다 오래된 SDK가있는 휴대 전화에서 8보다 새로운 코드를 실행하기 전에 확인한 다음 모든베이스를 커버해야합니다. 나는 targetSDK과 minSDK로 의견

감사를 엉망으로했을 때

난 그냥 조금 혼란 얻었다.

1

일반적으로 API 레벨 8만큼 뒤쪽에서 플랫폼에서 정상적으로 실행됩니다. 이는 사용자가 minSdkVersion의 내용을 가지고 있기 때문입니다. 그러나 레벨 11 이상에서 도입 된 API를 호출하려고 시도하면 이전 (11 이전) 플랫폼에서 충돌합니다. 이를 방지하려면 런타임에 OS 버전을 확인한 다음 해당 메소드를 호출해야합니다. 이를 수행하는 방법에 대한 조언은 Retrieving Android API version programmatically을 참조하십시오.

1

일반적으로 이러한 종류의 개발에 접근 할 때 더 낮은 API부터 작업하는 것이 가장 좋습니다. API에 대한 작업 버전을 완료 할 때마다 다음 레벨로 이동하기 전에 오류없이 컴파일해야합니다. Manifest는 targetSdkVersion이고 minSdkVersion이 다르면 경고합니다. 그러나 이것은 대부분 상위 API에서 메소드를 호출하지 않도록주의하는 것입니다. 유용한 해결 방법은 다음과 같습니다.

private static int getApiLevel() { 
      return Integer.parseInt(android.os.Build.VERSION.SDK); 
    } 
관련 문제