Android R cannot be resolved to a variable 에러

R cannot be resolved to a variable AboutActivity.java/org.cocos2dx.application.ApplicationDemo/src/net/gree/platformsample/adapter line 128 Java Problem

 Android 작업하시다가 보면 위와 같은 에러를 경험하실 때가 종종 있으실 겁니다.

 제 경우는 cocos2d-x Helloworld 샘플에 GREE Sample 소스를 Impot했더니 에러가 발생하더군요.

 기존에 R.java 파일이 아예 생성이 안되던 문제와는 다르게 이것은 java소스 파일에서 R.java에 있는 상수값을 제대로 인식을 못해 발생하는 것 같습니다. 보통은 해당 에러 java파일에 'import R.java;' 나 'import android.R;' 등이 있는지 확인 후 있다면 지우고 build하면 된다지만 에러난 GREE Sample 파일을 찾아보니 import 되어있지 않더군요.

 또는 layout폴더의 xml파일중에 문제가 발생할 수도 있다고 합니다. 하지만 저는 빌드 및 실행이 잘 되던 GREE Sample의 res를 cocos2d-x Helloworld에 복사해둔터라 이것또한 원인은 아니었습니다.

 단순히 Project Build Target을 체크하지 않아서 체크 후 해결했다는 분도 있었지만 이문제도 아니었습니다.

 뭐 당연히 이클립스로 Android개발하다보면 나오는 해결책들중 Clean -> Build나 bin, gen 폴더 삭제후 빌드, 이클립스 종료 후 재 실행해서 빌드 다 해봤지만 역시나 안되더군요.

 AndroidManifest.xml에서 package명을 다른걸로 바꾼 후 빌드하면 제대로 된다는 것도 찾았지만 이건 시도해보진 못했습니다.

 제가 해결한 방법은 이클립스에서 지원하는 Organize Imports를 사용해서 처리했습니다. Package Explorer에서 프로젝트를 선택하고 Ctrl + Shift + O 를 누르면 위와 같이 Organize Imports창이 뜹니다. 문제가 있는 소스들을 자동 잠지해 주더군요. 근데 여기서 Continue누르면 자동으로 해결이 될줄 알았는데 뭔가 진행이 되는 것 같더니만 해결은 안되더군요.

 그래서 에러난 파일들을 일일이 클릭해서 직접 파일마다 Organize Imports를 해줘서 스샷과 같이 org.cocos2dx.application.R을 선택해 줬습니다. 그러면 에러가 났던 java파일에 자동으로 Import가 추가됩니다.

 결론은 Organize Imports를 사용해서 자동으로 R파일을 Import하게 해줘도 되고 아니면 import.your.package.name.R  과 같이 직접 자신의 Package명 .R로 입력을 해주시면 해결이 될 것입니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.