2016-06-02 2 views
0

안녕하세요,이 주제에 대한 답이 있지만 지금까지 저에게 도움이되지는 않았습니다. 내 build.gradle 내가 방법 getContext()라고하고는 롤리팝 5.0 장치에 응용 프로그램을 추락 내 조각이minSdk보다 높은 api 23 전화 찾기 21

compileSdkVersion 23 
buildToolsVersion "23.0.3" 
minSdkVersion 21 
targetSdkVersion 23 

어딘가에 것 같습니다. 그것은 마시맬로 6.0에서 잘 작동합니다.

Fragment은 비 지원 라이브러리 패키지에서 가져 왔습니다.

import android.app.Fragment; 

내가 23 compileSDK이 있기 때문에 나는 Context를 얻을 수있는 조각을 withing에 방법 getContext() 호출 할 수 있습니다. 그러면 Lollipop 5.0 및 5.1에서 API 23이 아니라 API 21,22가 추가되어 충돌이 발생합니다.

내 질문은 최소 SDK가 그 아래에있을 때 Android Studio에서 어떻게 높은 수준의 전화를 찾을 수 있습니까?

+0

아마도 getContext()는 단지 예제 일 뿐이지 만 getActivity()는 API < 23 –

답변

2

SDK가 그 아래에있을 때 Android Studio에서 어떻게 높은 수준의 전화를 찾을 수 있습니까?

AFAIK Android 스튜디오는 일반적으로 응용 프로그램에서 정의한 minSDKVersion까지 완전히 역 호환되지 않는 메소드를 사용할 때마다 개발자에게 경고합니다. 그래서, 그 시점에서, 당신은 장치의 현재 버전을 체크 아웃하고 그에 따라 적절한 다른 방법을 호출 할 수 있습니다.

그러나 getContext() 메서드를 호출하는 동안 어떤 종류의 린트 경고도 표시하지 않습니다. 그래서 우리는 지금 그것을 다루어야 만합니다.

+0

호환되지 않는 호출을 명시 적으로 검사 할 가능성이 있습니다. 내 대답을 보라. –

1

이동 -> 분석 -> 코드를 검사 -> 실행 코드 검사

그런 다음 결과보기에서 이전 버전을 새로운 메소드를 호출

"Project Name" 
    - Android > Lint > Correctness 
     - calling new methods in older versions 

에서 (있다) 사용할 수없는 모든 호출은 나열되어야한다.