R.layout.main cannot be resolved



R.layout.main cannot be resolved



상당히 골치아픈 에러 중 하나이다.
특히나 안드로이드를 처음 시작하는 사람들에게는 더없이 골아픈 에러가 아닐까.. 게다가 왠지 모르게 안드로이드 SDK가 2.0.1대로 버전업되서 그런지, ADT가 버전업되서 그런지.. 그것도 아니면 AVD가 업되서 그런지는 몰라도 가장 기본적인 테스트 프로그램을 하나 만들면 우선 발생되는 에러가 저거다. 그래서 왠지 모르게 안드로이드 내부에 있는 Android.R을 임포트 해줘도 생기는 에러는 마찬가지.

아, 몇시간의 삽질 끝에 알아냈다. 이럴 경우에는 본래 안드로이드 개발을 할 떄 gen폴더에 R.java파일을 자동으로 생성해 주는데 내가 맥이라서 그런지 안되는 것 같다.(아니면 설정을 잘못했던가.)

해결방법은 다음과 같다.

우선 gen폴더에 대고 마우스 우측 버튼 클릭(맥에선 ctrl+클릭) New->Class 로 들어간다.

Name은 R Package는 자신이 처음 프로젝트를 생성할 때 만들어둔 패키지명을 적는다. 예를들어 프로젝트명이 Hello라면 Hello.java파일의 가장 처음에 package xxx 라고 쓰여있는 부분 중에 xxx를 기입한다.

그럼 R.java파일이 생긴다. 내용을 아래와 같이 바꿔준다.
package com.company.helloandroid;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}



그리고 저장 후 다시 xxx.java파일(xxx는 프로젝트명)로 돌아온다.

다음으로 이와 같이 방금 만든 Package이름.R 을 import시켜주면 에러는 말끔히 사라진다.

단순한 에러이지만 사실 이것은 결국 원인을 밝혀내지 못한 것이다.. 그런 점에서 아쉬움이 남는 에러.. 나중에 좀 더 숙련자가 되면 꼭 찾아내야지 !!