[안드로이드 공부]/안드로이드 공부

안드로이드 롤리팝 이상에서만 죽는 것

코코모아 2015. 10. 13. 22:54

아래는 코모스튜디오가 직접 만든 무료 앱이에요
(한 번만 봐주세요 ^^)

01

02

03

정각알림 만들기(말하는시계)

말하는 시계 (취침, 자전거) 

말하는 타이머 음성 스톱워치 

안드로이드가 세상사람들과 친해지기 시작한지 5년 정도 된 것 같다. 그래서 처음 부터 만나왔던 사람들에게도 잘해주려고 안드로이드는 v4, v7등과 같은 라이브러리를 제공하여 최신 API 및 UI를 사용할 수 있게 해주고 있다. 하지만, 이런 라이브러리를 사용할 때는 에러를 쉽게 만난다. 싼게 비지떡? 공짜가 어디있냐?



1. 최신 라이브러리를 이용하여 seekbar, switch 등을 가져와서 레이아웃에도 정확히 만들었고, 코드에서도 ID를 정확히 불러왔다.


2. 그런데 사망하셨다. (롤리팝 이상에서만 죽는다.)

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SwitchCompat.setOnClickListener(android.view.View$OnClickListener)' on a null object reference


위 에러로... 아무리 봐도 아이디는 정상이고... 제대로 불러왔다... 하지만.. 도데체 모르겠다.


3. 검색을 해봤다.

setContents를 하기 전에 애들을 불러와서 그렇단다. 난 그렇게 쓰지 않았다. 타이밍 문제라고 해서 최대한으로 땡겨 보았다. 하지만, 심폐 소생술은 통하지 않았다.


4. 자체 분석을 했다.

레이아웃 폴더를 보던 순간... 같은 이름의 파일이 2개가 보였다. v21폴더에 하나가 더 있었다. 즉, 롤리팝 이상의 단말기에서는 이 폴더를 사용해서 가져 온다는 것이다. 지금까지 허공에 삽질을 한 것이다. 타이밍 문제도 맞았다. 없는 Id를 그리고 없는 애들을 불렀다...


5. V21에는 기본을

V21에서는 seekbar를 그냥  seekbar로 적고, 기본에서는 원하는 커스텀 xxxseekbar로 적는다. 그리고, 코드에서는 build version을 구분해서 id를 불러온다.


언제나 하는 말이지만... 컴퓨터는 거짓말 하지 않는다. 절대로.

모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다.
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요.