R을 해결할 수 없습니다-Android 오류 {

방금 새 Android SDK를 다운로드하여 설치했습니다. 테스트를위한 간단한 응용 프로그램을 만들고 싶었습니다.

마법사는 다음 코드를 작성했습니다.

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

하지만 이클립스 는 나에게 오류를 준다.

R을 해결할 수 없습니다

온라인

setContentView(R.layout.main);

왜?

추신 : main.xml아래에 이름이 지정된 XML 파일이 있습니다 res/layout/.



답변

이 문제를 추적 한 후 Android 설명서 에서이 메모를 찾았습니다.

http://source.android.com/source/using-eclipse.html

* 참고 : Eclipse는 때때로 자원을 사용하는 파일 맨 위에 “가져 오기를 정렬하거나 관리하도록 Eclipse에 요청하는 경우”import android.R “명령문을 추가하는 것을 좋아합니다. 이로 인해 제조업체 가 파손될 수 있습니다. 이 잘못된 수입 명세서를 찾아서 삭제하십시오. *

Android 샘플 자습서를 진행하는 동안 Ctrl+ Shift+ O명령을 사용하여 “가져 오기 구성”을 수행하고 누락 된 가져 오기 문을 생성합니다. 때때로 이것은 잘못된 import 문을 생성하여 R.java빌드 할 때 자동으로 생성 되는 클래스를 숨길 수 있습니다.


답변

R에 대한 문제가 발생하지 않았거나 사라질 때마다 XML 레이아웃 파일의 일부 문제로 인해 응용 프로그램을 빌드하지 못했습니다.


답변

당신이 얻을 때마다

R을 해결할 수 없습니다

그런 다음 /res디렉토리 를 확인 하고 오류가 있고 응용 프로그램을 빌드하지 못하게하는 파일이 있어야합니다. 예를 들어, 레이아웃 파일이거나 일부 누락 된 자원으로 인한 것일 수 있지만 이미 XML 파일에서 정의한 것입니다.

파일 명명 규칙을 준수하지 않는 res / drawables-mdpi와 같은 폴더에 사용하지 않은 (!) 또는 참조되지 않은 (!) 이미지가 추가로있는 경우 ([a-z0-9_.] 만 포함 할 수 있음) R.java 클래스가 생성되지 않아서 다른 모든 게시물이 참조하는 이벤트 체인이 발생합니다. 그것이 도움이되기를 바랍니다!


답변

내 프로젝트에는 r.java.가 처음에 포함되어 있습니다 .R.layout.main은 잘 작동합니다. 그러나 일부 코드를 추가하면 작동하지 않으며 오류는 R.layout.main이 해결할 수 없습니다. ?

수입품을보십시오. 그 줄은 다음과 같습니다.

import android.R;

거기있을 게. 이 경우 프로젝트를 제거하여 기본 Android 리소스 클래스가 아니라 / res / 폴더에서 자동 생성 된 R로 R을 해결하십시오.


답변

그리고이 문제를 일으킬 수있는 또 다른 것 :

새 ADT (v. 22)를 설치했습니다. gen가 포함 된 폴더 생성을 중지했습니다 R.java. 해결책은 Android SDK Manager에서 새로운 Android SDK 빌드 도구를 설치하는 것이 었습니다.

여기에 해결책이 있습니다


답변

R.javaAndroid Eclipse 플러그인이 애플리케이션을 빌드하는 동안 작성하는 파일입니다. R.java“gen”디렉토리 아래에 작성됩니다. 이 파일은 “res”디렉토리의 정보에서 생성됩니다. Eclipse 메뉴에서 “Project”-> “Clean …”을 선택하면 R.java파일 이 제거 된 후 재생성 됩니다.

AndroidManifest.xml파일 에서 패키지 이름을 변경하면 “R을 해결할 수 없습니다”문제가 발생 합니다. Android 패키지 이름을 사용하여 R.java파일을 저장하는 “gen”디렉토리 아래에 서브 디렉토리를 작성 합니다.

Eclipse는 R.javaAndroid 패키지 이름을 변경했을 때 파일 위치에 대해 혼란스러워서 클린 실행에 문제 가있을 수 있습니다. 하위 디렉토리의 이름을 바꿀 수 있습니다gen새 패키지 이름과 일치 거나 패키지 이름을 이전 이름으로 다시 변경할 수 있습니다. 정리하고 패키지 이름을 원하는 새 이름으로 변경하십시오. 패키지 이름을 변경하는 동안 Eclipse가 빌드를 시도하지 못하게하는 경우에 가장 효과적입니다. “프로젝트”메뉴에서 “자동 빌드”옵션의 선택을 취소하고 “청소 …”대화 상자에 “즉시 빌드 시작”메시지가 표시되면 상자를 선택 취소하여 변경하는 동안 빌드하지 않도록하십시오. 패키지 명 이름을 변경 한 후 “자동 빌드”를 다시 켤 수 있습니다.

참고 사용자의 경우 것으로 AndroidManifest.xml파일 패키지 이름이 Java 패키지 이름과 일치하지 않는, Eclipse는 자동으로 추가 끝날 것 “수입 <안드로이드 패키지 이름> .R을;” 모든 라인 .java당신이 당신의 변경하면 R.에 대한 참조를 가진 파일 AndroidManifest.xml
패키지 이름은, 가끔 이클립스는 이러한 추가 수입을 모두 업데이트하지 않습니다. 이 경우 Eclipse 리팩토링 ( ALT+
Shift+ R)을 사용하여 Java 파일 중 하나의 가져 오기 명령문을 새 AndroidManifest.xml패키지 이름으로 변경하십시오. “자동 빌드”를 비활성화 한 상태에서이 작업을 수행하는 것이 가장 좋습니다.


답변

윌의 말이 옳았다

R은 자원을 식별하는 데 사용되는 상수를 보유하는 자동 생성 클래스입니다. R.java 파일이없는 경우 (1.5 SDK의 Eclipse에서 gen / eu.mauriziopz.gps / R.java) 프로젝트를 닫았다가 다시 열거 나> 프로젝트> 모두 빌드로 이동하는 것이 좋습니다. (> Josef가 권장하는대로 “자동 빌드”를 선택하십시오). 그래도 문제가 해결되지 않으면 새 프로젝트를 작성하는 것보다, 여기서 다시 게시하는 것보다 문제가 다시 발생하면 더 자세히 설명하겠습니다.

그러나 첫 번째 문제를 일으키는 또 다른 문제가 있음을 알게되었습니다. SDK 디렉토리의 도구에는 실행할 권한이 없으므로 Eclipse에는 존재하지 않았으므로 R.java파일을 빌드하지 않았습니다 .

따라서 권한을 수정하고 “자동 빌드”를 선택하면 문제가 해결되었습니다.