마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 API 레벨과 하위 버전 호환 궁금증 질문 드립니다.

0 추천
안녕하세요.

안드로이드 API 레벨(?) 에 대한 궁금한 점이 있어서 질문드립니다.

VideoView 의 method 중 setVideoURI(Uri uri, Map<String,String> headers) 라는 메소드가 있습니다.
해당 메소드는 문서를 찾아보면  Added in API lever 21 이라고 나옵니다.

안드로이드 4.4 이후에 롤리팝에서 부터 지원하는 API 인걸로 파악됩니다.

제가 별 생각없이 프로젝트 API 레벨을 22로 잡아놓고 개발을 했고, 배포도 했습니다.
그리고, 몇 달이 지난 후 소스를 다시 보다보니, 이거 오류가 발생해야 하는 거 아닌가 하는 생각이 들더군요.

안드로이 4.X 에서는 해당 API 가 지원하지 않으니, 오류 발생해야 하는데...어째서 문제가 발생하지 않을까?
하는 생각을 하게되었습니다.

나름 생각하기에는 컴파일 과정에서 dex로 만들어질 때 API 레벨에 문제가 있고, 4.X 에 해당 되는 API로 처리되는게
아닌가 하는 혼자 생각하게 되었습니다.

그러다 이부분이 정확히 어찌되는지 궁금해서 이렇게 글을 올려봅니다.

고수님들 API 레벨 22 에 나온 setVideoURI(Uri uri, Map<String,String> headers) 가 왜 문제없이
안드로이드 API 22 미만인 4.X 대 기기들에서 오류 없이 작동하는지 정확한 설명 해주실 분 있나요.

부탁드립니다.

감사합니다.
마시멜로로 (290 포인트) 님이 2017년 2월 15일 질문

1개의 답변

0 추천
해당 API를 호출하는 부분이 있나요? 호출하지만 않으면 상관없습니다.

해당 API를 호출한다면, 4.4이하 기기에서는 강제종료될 겁니다.
익명사용자 님이 2017년 2월 16일 답변
답변 감사합니다.

문제는 소스상 setVideoURI(Uri uri, Map<String,String> headers); 메소드가 호출 됩니다.
그런데, 오류 메세지가 발생하지도 않고, 동영상 또한 재생이 잘 됩니다.

그래서 이게 어찌된 일인지 궁금해서 질문을 올린 겁니다.
...