본문 바로가기
SW 프로그래밍/안드로이드

Cannot resolve symbol R 문제

by N2info 2019. 3. 25.
[안드로이드 스튜디오] error: Cannot resolve symbol R - 해결법  (8) 

# 사용중인 안드로이드 스튜디오 버전 : 3.1.2



Cannot resolve symbol R 문제는, 

특히 안드로이드를 개발한지 얼마 안된 사람들이 많이 겪는 문제중 하나다.



일단 이건, "R.java" 파일에 무슨 문제가 생겼단 얘긴데,

'R' 파일이 뭔가 싶을거다.


'R' 파일은 내 프로젝트 내에 여러 리소스(레이아웃, 이미지, 아이콘 등등..)를

찾을 수 있는 주소값들을 자동생성하여 가지고 있는 파일이다.


(R.java 파일이 레이아웃 주소를 참조하고 있음을 보여주는 스샷)




즉, 주소값들을 자동생성하는 과정에 있어 어떠한 문제가 생겨 에러가 발생했다는 것.



이 에러를 발생시킬 수 있는 원인은 정말 다양한데, 원인일 확률이 높은 것들을 나열해보자면,


 # 원인


 1. 오타 

말그대로 내 손이 잘못인 경우다.

상당히 많은 경우가 이 경우에 해당하므로, 아래 항목들을 체크해보길 바란다


- resource(레이아웃, 이미지 등)로 등록한 파일명에 '대문자'나, '특수기호'가 들어가 있는지 확인한다.

  resource 명은 오직 '소문자'와 '언더바'만 허락된다. 그냥 안드로이드 스튜디오 규칙이다


- 레이아웃 xml 파일안에 오타가 없는지 확인한다

  예를들어, 시작태그는 있는데 종료태그(</Linearlayout>)가 없어서 에러가 나는 경우도 있다


- manifest에 액티비티 클래스 이름을 적을 때, 미쳐 적지 못한 '점', '괄호' 등이 빠졌는지 확인한다

  정말 별거 아닌건데, 안 보여서 빡칠때가 많다.

       # 잘못된 선언 ==>   <activity android:name="Test_activity"/> 

       # 올바른 선언 ==>   <activity android:name=".Test_activity"/> 



 2. 나 오타 없는데? 

오타 이외에도 많은 경우에 수가 있지만,


- 간혹 예제 프로젝트를 다운 받아서 열거나 import 하는 경우

- 혹은, 신규 프로젝트인데 R.java 파일이 어쩌다가(?) 생성이 되지 않는 경우가 정~~~말 간혹 있다


이때 혹시나 자바파일 안의 빨간색 'R'에 커서를 두고,

'Ctrl + 스페이스'를 눌러 억지로 (android.R)를 참조하지 말도록 하자.

그 R 파일이 아니다





 # 해결방법:  아래 나열한 방법대로 시도해보자.


 해결방법 1. 

메뉴 > Build> Clean Project

메뉴 > Build> Rebuild Project


위를 차례대로 실행한다.

그래도 해결이 안된다면 아래 '해결방법 2.'를 시도한다.




 해결방법 2

메뉴 > File > Invalidate Caches / Restart



오타도 없고, 위 해결방법을 거쳤다면

어지간하면 에러가 해결될 것이다.