TL; DR , "패키지 R이 존재하지 않습니다"오류가 발생하면 가능한 이유는 다음과 같습니다.
- XML 리소스 파일의 일부 오류
-> XML 오류 수정
- 현재 패키지가 패키지와 다릅니다
R( package
AndroidManifest.xml의 속성 참조 )
-> 가져 오기 R클래스 (예 : import com.example.android.R;
->) 또는 소스에서 적절한 패키지를 사용 (예 : package com.example.android;
->)하거나 적절한 경우 AndroidManifest.xml 의 패키지 속성을로
변경합니다.<manifest xmlns:android="..." package="com.example.android" ...>
- 사용 된
RID는 시스템 리소스에서
가져온 것입니다-> do not import android.R, android.예를 들어 ID를 접두사로 지정하는 대신 android.R.layout.simple_list_item_2
가져올 수 android.R있지만 애플리케이션 R클래스를 더 이상 가져올 수 없으며 애플리케이션 ID를 접두사로 지정해야합니다. com.example.android.R.id.main_menu.
R 클래스는 응용 프로그램의 자원에서 자동으로 생성됩니다. 그것은 포함 id이러한 자원들과의라는 이름의 패키지에 포함되어
<manifest>
해당 태그 AndroidManifest.xml파일.
리소스 XML 파일에 오류가없는 경우 R.java소스는 아래 패키지 하위 디렉터리에 생성되어 gen/컴파일됩니다.
패키지 R에 다른 클래스가 있습니다 android. 이 android.R클래스에는 시스템 리소스에 id대한 s 및 기타 값 이 포함 된 일부 중첩 클래스가 포함 됩니다.
Java에서 클래스를 사용하려면 전체 패키지로 클래스 이름을 지정해야합니다. 예 :
java.util.List<Object> list = new java.util.ArrayList<Object>();
또는 클래스를 가져온 다음 패키지없이 사용
import java.util.List;
import java.util.ArrayList;
List<Object> list = new ArrayList<Object>();
현재 클래스와 사용 된 클래스가 모두 동일한 패키지에있는 경우 패키지 이름을 지정하지 않고 클래스를 사용할 수도 있습니다. 예 :
package com.example.android;
public class A {
/* ... */
}
package com.example.android;
public class B {
public void useA() {
A a = new A();
}
}