프로그램/안드로이드

안드로이드에서, R.java 가 사라졌을때 + Resource 가 등록되지 않을때

(주)CKBcorp., 2015. 3. 21. 06:00
반응형



제목 그대로다.
황당해서 대처법도 제대로 몰랐는데, 명시적인 방법이 있어서 적는다.

http://www.androidpub.com/1877913

2. 상황설명

안드로이드의 res / drawable 폴더에 이미지를 넣었는데, 그 이미지를 R.id.drawable 로 접근이 안됐다.

왤까? F5 를 하염없이 연타해 봐도 안되고...


조금 복잡하다. 최대한 간결하게 설명해 보자.


3. F5 를 눌렀는데도 불구하고 새 이미지를, R.id.drawable 로 가져올 수 없었다.

 = 즉, R.java 가 갱신 안 됐단 소리다. F5 를 눌렀는데도 불구하고. 


원인을 보니, 

3.1. 이미지를 넣으면서 기존 이미지 지운게 있는데, 

3.2. 그 이미지가 다른 xml 에서 디자인으로 쓰이고 있어서

3.3. xml 에서 에러 발생

3.4. xml 에러 때문에 R.java 가 갱신 중지.

3.5. 갱신이 중지되어 추가된 이미지를 사용불가.


4. 해결

4.1. xml 에러를 해결해야 한다.

-> 해결 안하면 진행이 안됨.

이미지를 지우던, 이름 바꾸던 해서 일단 xml 에서 오류 발생한 걸 없에야 한다.

4.2. 다시 갱신( F5 혹은 마우스 오른쪽 버튼 -> refresh )

4.3. 이걸로 해결되면 좋겠지만, 만약 해결 안된다면, 

4.4. project 를 한번 clean 해라. ( menu > project >clean ) . 그리고 다시 build.

-> 보통은 build 옵션이 auto 로 되어 있을텐데, 명시적으로 clean -> build 를 해 주면, R.java 를 명시적으로 다시 만들어낸다.

4.5. 설마, build 를 다시 했는데도 추가한 새 이미지 R.id.drawable 로 보이지 않는다면, 이건

R.java 가 import 안 되었을 가능성이 높다.

원래 R.java 를 import 할 때는 "프로젝트이름.R" 을 import 해야 되는데,

중간에 CTRL + O 를 눌렀을때 Android.R  이 include 되었다면, 

명시적으로 Android.R 을 지우고, "프로젝트이름.R" 을 다시 import 해 줘야 한다.




끝.







 


반응형