source

Android Studio에서 "R 기호를 확인할 수 없음"

ittop 2023. 6. 1. 22:58
반응형

Android Studio에서 "R 기호를 확인할 수 없음"

에.R.id.something,R빨간색으로 표시되고 "R 기호를 확인할 수 없음"으로 표시됩니다. 또한매있때마다을번▁there▁is가 있을 때마다R.layout.something빨간색으로 밑줄이 그어져 있고 "methodsetContentView(?)를 확인할 수 없습니다."라고 되어 있습니다. 프로젝트는 항상 정상적으로 빌드됩니다.이것을 항상 보는 것은 짜증나는 일입니다.저는 이클립스에서 프로젝트를 가져오는 것과 유사하지만 가장 관련된 것에 대한 다른 질문들을 여기서 많이 읽었습니다.저는 안드로이드 스튜디오의 가장 최신 버전이라고 생각되는 것을 사용하고 있으며, 이 프로젝트는 안드로이드 스튜디오와 함께 만들어졌으며 "R을 해결할 수 없습니다" 문제 없이 작동했습니다.저는 만약 누군가가 이것의 원인을 안다면 무엇인지 알고 싶습니다.

저도 이 문제가 있었습니다.단순한 '깨끗함'과 '깨끗함'이 묘기를 부렸습니다.


빌드->프로젝트 정리를 클릭하면 그레이들 정리가 수행됩니다.

Android Studio의 최신 버전에서는 적어도 다음과 같은 기능이 있습니다.

"도구" -> "안드로이드" -> "그라들 파일과 프로젝트 동기화"

최신 Android Studio 3.1.3(2018년 7월)에서는 메인 메뉴 바에서 "Sync Project with Gradle Files"를 사용할 수 있습니다.

여기에 이미지 설명 입력

Gradle 3.3.0을 사용했습니다.그것이 주범이었습니다.내 인생에서 6시간 50분을 허비했습니다.Gradle 3.2.1은 오류를 제거했습니다.

classpath 'com.android.tools.build:gradle:3.2.1'

Gradle 버전을 변경한 후 문제가 해결되었습니다.자세한 내역은 여기에서 확인할 수 있습니다.

저도 비슷한 문제가 있는데 제가 한 일은 다음과 같습니다.

프로젝트 정리 및 Gradle과 프로젝트 동기화,

여기에 이미지 설명 입력

sdk의 build 내 SDK 구도 버전체의크를 확인합니다.여기에 이미지 설명 입력

빌드 그래들(모듈)에서 minSdkVersion을 8에서 9로 변경합니다.

defaultConfig {
        applicationId "PackageName"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

하지만 이 모든 것은 도움이 되지 않았습니다.

마침내 저는 답을 찾았습니다 (이것은 제 경우에 효과가 있었습니다).

build.gradle(모듈:app)에서 변경

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
......
....
}

또는

파일 선택 | 프로젝트 구조 빌드 도구 버전을 21.1.1로 변경

여기에 이미지 설명 입력

  1. xml 파일을 확인합니다.
  2. 프로젝트 정리.

이게 그거다.

예를 들어, 나는 나의 항목을 가지고 있었습니다.strings.xml:

<string name="A">Some text</string>

그고리에서.activity_main.xml는 이 문자열 항 사 습 다 했 용 니 목 열

<TextView
android:id="@+id/textViewA"
android:text="@string/A"/>

프로젝트를 진행하는 동안 삭제했습니다.

 <string name="A">Some text</string>

결과적으로 결적으로과▁and.activity_main.xml유효하지 않게 되었습니다.결과적으로: R을 확인할 수 없습니다.

그럼, 확인해보세요.*.xml파일 및 정리 프로젝트.

Java 파일 또는 디렉터리를 다른 위치로 이동한 후 이 오류가 나타나면 Android Studio가 혼동되었음을 보장할 수 있습니다.그리고 무슨 일이 있었게?이러한 작업을 취소한다고 해서 문제가 해결되지는 않습니다.

그래서 청소를 해보지만, 그것은 효과가 없습니다.

다시 시작해도 작동하지 않습니다.

그러나 파일 사용 -> 캐시 무효화/다시 시작... -> 무효화 후 다시 시작

Android Studio는 어떤 파일이 다른 파일에 종속되어 있는지에 대한 정보를 유지 관리합니다.그리고 파일 이동이 제대로 구현되지 않기 때문에 파일을 이동하면 오류가 발생합니다.이것이 전부가 아닙니다. 이러한 종속성의 캐시는 빌드 속도를 높이기 위해 사용됩니다.

따라서 다시 시작해야 할 뿐만 아니라 이러한 캐시를 비활성화하여 건전성을 복원해야 합니다(더 정확하게는 재구축해야 합니다.

활동 파일을 기본 폴더가 아닌 다른 폴더에 저장하는 것이 좋습니다.은 다을가합다니를 .com.example.yourproject.R(이것은 당신의 프로젝트입니다.R NOT 없음일Android.Rfile) using file) 파일을 하십시오.R를 들어, 예를들어에서,MainActivity파일 다음 줄 삽입:

import com.example.yourproject.R;

이 문제에는 여러 가지 원인이 있는 것 같습니다.최근에 New Activity라는 테스트할 활동을 추가했습니다.이것은 다음과 같은 파일을 만들었습니다.res/menu/new.xml그리고 gradle은 new가 예약된 단어이기 때문에 그 이름을 좋아하지 않았습니다.

gradlew clean

또는

"Tools" -> "Android" -> "Sync Project with Gradle Files"

이러한 작업을 수행하는 것은 물론 좋지만 명령을 실행하기 전에 해결해야 할 몇 가지 다른 문제가 있을 수도 있습니다.

먼저 프로젝트를 정리하고(빌드 메뉴에서), 원인이 될 수 있는 빌드 디렉터리를 삭제하는 두 가지 작업을 수행해야 합니다.

빌드 -> 프로젝트 정리

다음, 프로젝트를 Gradle 파일과 동기화(파일 아래):

파일 -> 프로젝트를 Gradle 파일과 동기화

이것은 Windows 10의 Android Studio 3.6.1에 있는 항목의 배치입니다.

그렇지 않으면 캐시 무효화 및 재시작(파일 아래)이 일반적으로 수행됩니다.이렇게 하면 전체 프로그램이 종료되고 가장 많은 시간이 소요된다고 생각합니다.

파일 -> 캐시 무효화

분명히 말씀드리자면, 저는 이것을 윈도우 10에서 실행하고 있지만, MacOS와 Linux에서도 작동할 것입니다.

R.java 파일에는 xml과 java 페이지 사이의 링크가 포함되어 있습니다.일부 리소스 파일에 문제가 있는 경우에만 "R을(를) 해결할 수 없습니다"가 발생합니다.따라서 가장 좋고 효과적인 방법은 마지막으로 완료된 xml 또는 res 파일에서 그릴 수 있는 것을 삭제하는 것입니다. 그리고 다시 안드로이드 코딩 규범에 따라 거기서 시작합니다.이게 유일한 방법이에요.효과적이고 올바른 방법.

또한 Git를 사용하여 코드를 올바르게 추적할 수 있습니다.

코드가 스크램블되었습니다.답은 꽤 간단합니다.

빌드 --> Clean Project로 이동하면 됩니다.

그것이 효과가 있어야 해요.

Android Studio 버전도 확인하십시오.

저는 현재 안드로이드 스튜디오 3.0.1사용하고 있습니다.

최근에 SDK 도구를 업데이트했습니까?Android SDK 관리자를 시작하고 플랫폼 도구와는 별도로 최신 SDK 도구가 있는지 확인합니다.SDK 관리자를 처음 업데이트할 때 SDK 관리자를 닫았다가 다시 열 때까지 SDK 빌드 도구 패키지가 설치/업데이트에 나타나지 않았습니다.

나는 나의 것을 가져와야 했습니다.R안드로이드 스튜디오의 패키지. 예:import com.example.<package name>.R

프로젝트를 정리하고 Gradle File과 프로젝트를 동기화하기만 하면 됩니다.여기에 이미지 설명 입력

그리고 그 문제는 해결될 것입니다.

최근에 이 문제가 발생했는데 클린/빌드 등으로 해결되지 않았습니다.어딘가에 문제가 있다고 생각했지만 어디서 찾아야 할지 확신할 수 없었습니다(매니페스트, 리소스 xml 파일 등).

무언가 잘못되었을 때, 당신은 코드 분석 실행을 통해 그것이 무엇인지 알아낼 수 있습니다.

상단의 메뉴에서 다음을 선택합니다.

분석 -> 코드 검사, 'Default' 프로파일을 사용하여 프로젝트 전체를 스캔합니다.

검사 결과에는 'Android'라는 요소가 포함됩니다.여기에는 리소스 및 매니페스트 파일에서 문제를 일으키는 모든 항목의 목록이 표시됩니다.오류가 발생하면 빌드에서 생성된 xml 파일이 열리고 오류가 빨간색으로 표시됩니다.

내 정확한 문제는 내가 맛 기반 매니페스트 파일을 사용하고 있었고 내에서 일부 권한을 복사했기 때문에 발생했습니다.<application>뜻밖에 맛이 나다

감사

업데이트: Android Studio에서 오류가 있는 동안 완벽하게 빌드하고 실행할 수 있음에도 불구하고 수정 후에도 오류가 표시된 부분에 문제가 있었습니다. (카나리아 빌드를 실행하고 있으므로 지금은 여기까지 설명합니다.)

나는 이것에 싫증이 났습니다.

  1. 그리기 가능한 리소스에 대문자가 있습니다.
  2. Android 가져오기.Android Studio(또는 Eclipse)에 의해 추가되는 R
  3. xml 파일에 오류가 있습니다.

앱의 도메인 폴더 이름을 수동으로 변경할 때 이 문제가 발생했습니다.이 문제를 해결하기 위해, 나는

  1. 적한설정을 합니다.package폴구의 <manifest>AndroidManifest.xml.
  2. 의 새 합니다.android:name<activity>AndroidManifest.xml.
  3. 캐시 지우기 기준

파일 메뉴 -> 캐시 무효화/다시 시작...

Android 스튜디오가 다시 시작되고 새로운 인덱스를 구축하면 이 문제는 해결됩니다.

저도 같은 문제가 있었습니다.Android Studio 3.2 프로젝트가 컴파일되어 정상적으로 실행되지만 "Can't resolve symbol "R" 경고가 화면에 표시됩니다.

도움이 되지 않음:

  • 빌드->프로젝트 정리
  • 빌드->프로젝트 다시 빌드
  • 파일->캐시 무효화/다시 시작

도움말:

어느 하나

체격이 좋은

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
...
}

로 대체합니다.

   dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
    ...
    }

또는

Android Studio를 3.3으로 업데이트

이것은 매우 오래된 질문이지만, 여전히 많이 발생하고 여기에는 진정으로 포괄적인 대답이 없습니다.

저는 이 문제를 인정하고 싶은 것보다 더 많이 겪었습니다.대부분 프로젝트 구조가 예상과 일치하지 않는 다양한 문제로 인해 발생할 수 있습니다.다음은 제가 겪었던 모든 문제들의 목록입니다.

Eclipse에서 Android Studio로 가져오는 작업이 특히 이전 버전의 Android Studio에서 항상 원활하게 작동하는 것은 아닙니다.올바른 디렉터리 트리를 사용하고 있는지 확인합니다.적당히 성숙한 앱의 경우 다음과 같이 표시되어야 합니다.

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

IDE에서는 이렇게 보이지 않을 수 있습니다.파일 트리 위에 다른 방식으로 파일을 표시하는 드롭다운이 있습니다. 이 드롭다운은 시스템에서 기본적으로 Android라는 유형으로 파일을 분류합니다.Android Studio는 다른 폴더만 포함된 폴더를 한 줄로 접기 때문에 Project라는 문제를 해결하는 것이 더 쉽고 OS의 파일 시스템에서 직접 문제를 해결하는 것이 더 쉽습니다.

특히 앱 이름을 변경할 경우 소스 트리 main/java/com/domain/AppName이 업데이트되었는지 확인해야 합니다.또한 AndroidManifest.xml의 패키지 태그가 올바른지 확인합니다.

Gradle 파일 또는 AndroidManifest.xml에 오류가 있으면 Android Studio에서 리소스 파일을 제대로 작성할 수 없습니다.특히 1.0 이전 버전에서 Android Studio를 업그레이드하면 Gradle 파일이 손상될 수 있습니다.이는 이전 버전의 Gradle 플러그인 지원이 중지되기 때문에 버전 번호를 업데이트해야 합니다.때때로 현재 버전이 무엇인지 찾기가 어려울 수 있습니다.오늘 7월 17일 현재, 제 앱은 다음과 같이 잘 컴파일되고 있습니다.com.android.tools.build:gradle:1.2.3은 가장 .

Android Manifest가 존재하지 않는 그리기 가능한 또는 문자열 리소스 또는 활동을 참조하는 경우 이 오류가 발생합니다.존재하지 않는 그리기 가능 리소스 또는 문자열 리소스를 참조하는 항목이 있는 경우 이 오류가 발생할 수 있습니다.

리소스에 손상된 파일이 있거나 잘못된 xml 파일이 있으면 이 오류가 발생합니다.

제 경험에 따르면 Android Studio는 때때로 이유 없이 딸꾹질만 하고 컴퓨터를 다시 시작해야 합니다.이유는 모르겠지만, 가끔은 효과가 있습니다.

이름이 같은 두 xml 리소스가 서로 재정의되지 않는 디렉터리에 있는 경우 이 문제가 발생할 수 있습니다.예를 들어 drawable-mhdpi와 drawable-xhdpi는 대상 디바이스에 따라 서로 재정의되므로 동일한 이름을 가질 수 있지만 레이아웃과 메뉴에서 동일한 이름을 가진 경우 문제가 발생합니다.파일 이름을 바꾸거나 파일 중 하나를 삭제합니다.

일부 리소스에만 이 문제가 있는 경우 해당 리소스는 잘못된 디렉터리에 있을 가능성이 높습니다.

어떤 경우에는 Android Studio를 완전히 다시 설치해야 했습니다.뭐가 잘못됐는지는 모르겠지만, 효과가 있었습니다.

프로젝트 전체를 다른 디렉토리로 이동한 후 새 프로젝트로 다시 가져온 경우도 있습니다.뭐가 잘못됐는지는 모르겠지만, 효과가 있었습니다.

이름에 예약된 단어가 있는 xml 파일이 이 문제를 일으킬 수 있습니다.이름을 바꾸거나 삭제합니다.

Gradle 파일이 설치되지 않은 빌드 도구 버전을 참조할 수 있는 몇 가지 방법이 있습니다.Gradle을 변경하거나 적절한 빌드 도구를 다운로드하여 이 문제를 해결합니다.

마지막으로, 문제를 해결한 후에는 Gradle 프로젝트를 정리해야 합니다.이렇게 하려면 상단의 빌드 메뉴로 이동하여 프로젝트 정리를 선택합니다.

Android Top 메뉴 목록으로 이동하면 됩니다.빌드 메뉴를 클릭하고 빌드 아래에서 프로젝트 재구성을 클릭합니다.

여기에 이미지 설명 입력

이 문제에 대한 특별한 사례가 있습니다.

제 프로젝트에서는 모든 것이 잘 되고, 성공적으로 컴파일하고 빌드할 수 있지만, 제 Android Studio IDE에서는 R.java 파일이 잘 해결되지 않고 항상 빨간색 줄에 놓입니다.

이와 같이:

이것은 저를 거의 미치게 할 정도로, 저는 프로그래밍할 때 읽히는 색을 견딜 수 없습니다.

마침내 저는 이 까다로운 문제가 제 R.java의 파일 크기 때문이라는 것을 알게 되었습니다.제 프로젝트는 매우 큰 프로젝트입니다. 여러 언어와 여러 화면 크기를 지원합니다.리소스가 너무 많아서 제 R.java의 파일 크기는 약 2.5M입니다.

Android Studio에서 파일의 최대 크기는 기본 설정으로 2.5M이므로 이 제한보다 큰 파일은 잘 해결되지 않습니다.그리고 "AndroidStudio-root/bin/idea.properties"에서 기본 설정을 변경할 수 있습니다.

다음 줄 변경:

idea.max.intellisense.filesize=2500

대상:

idea.max.intellisense.filesize=5000

Android 스튜디오를 다시 시작하면 빨간색이 사라집니다. 다시 즐겁게 프로그래밍할 수 있습니다.

빌드 > 클린 프로젝트

이것은 저에게 효과가 있었습니다.같은 문제가 몇 번 있었는데, 이것이 바로 해결된 것 같습니다.당신이 무언가를 바꾸거나 변수 R을 부르지 않는 한.이 문제는 저에게 일어날 때 갑자기 발생합니다. 그래서 저는 안드로이드 스튜디오들이 겁을 먹고 있다고 생각합니다.ㅎㅎ

좋은 하루 보내시고, 프로젝트에 행운을 빕니다.

Do: Build > Clean Project

중요: 메시지 창(Alt+0)에서 프로젝트 정리 후 오류가 발생하지 않는지 확인합니다.느낌표가 있는 빨간색 원을 찾으면 코드에서 해당 오류를 제거해야 합니다.

대부분 이러한 오류는 @string/ 또는 @array/와 관련이 있습니다.프로젝트를 다시 정리하고 완료했습니다!

저도 같은 문제를 겪었고 대부분의 경우에 의해 해결됩니다.

  • 그라들 파일과 프로젝트 동기화
  • 빌드하기 -> 프로젝트 정리
  • 파일 실행 중 -> 캐시 무효화

하지만 이번에는 이 모든 것을 하고도 오류가 계속되었고 마침내 저는 범인을 찾았습니다.

문제는 xml 파일에 있었습니다. 여기서 저는 일반 문자열 값을 제공했습니다.android:idID 리소스 유형 대신 사용합니다.

실수

android:id="username"

수정

android:id="@id/username"

에 관련된 일들을 엉망으로 만드는 것.resources이 입니다.xml 파일은 파일 이름입니다.file.xml 되지 않을 수 .

메모

대부분의 경우 컴파일러는 메시지에 오류 소스를 표시합니다.다른 솔루션을 시도하기 전에 먼저 확인해 보십시오.

저도 같은 문제가 있었는데, 제가 새로운 프로젝트를 만들 때 발생합니다.

제가 하는 일은:

  • SDK 업데이트 확인
  • 안드로이드 스튜디오 업데이트,
  • 그런 다음 프로젝트를 다시 엽니다.
  • andidmanifest.xml을 엽니다.
  • Android:label에서 "_>" 사이의 공백을 지우고 저장합니다.

그것은 저에게 효과가 있습니다.

제가 직접 고치느라 고생했어요.

  • layout.xml 파일에 오류가 없는지 확인합니다.
  • 빌드 > 프로젝트 정리로 이동

저한테 효과가 있었어요, 당신에게도 효과가 있기를 바랍니다.

"저도 같은 문제가 있었고, 그것은 다음과 같이 해결되었습니다.

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches

//imp step
5) Check your xml files properly.`

이 표기법은 잘 작동하는 것 같습니다.

android:id="@+id/viewID"

안드로이드 스튜디오의 디자인 패널이 잘 작동하지 않는 것 같습니다.

같은 문제입니다.그리기 가능한 폴더에 몇 개의 이미지를 추가하고 액세스를 시도했을 때 시작되었습니다.또한 추가된 이미지는 대문자로 확장된 것입니다.이름을 바꾸어도 메시지가 같고 R에 액세스할 수 없기 때문에 빌드가 크래시된 것 같습니다..iml 파일에서 excludeFolder를 찾아 아래와 같이 제거했습니다.

  <excludeFolder url="file://$MODULE_DIR$/build/apk" />
  <excludeFolder url="file://$MODULE_DIR$/build/assets" />
  <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
  <excludeFolder url="file://$MODULE_DIR$/build/classes" />
  <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
  <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />

그 후 저는 프로젝트를 다시 만들고 극적으로 다시 나타났습니다.

이 오류에는 여러 가지 원인이 있습니다.

  1. 때때로 동일한 이름을 유지하는 이미지 파일을 교체할 때 발생합니다.
  2. 해 보겠습니다. a 아이웃가삭정항다니.xml say a<Button/>그러나 여전히 모든 활동 또는 Fragment .java에서 선언됩니다.
  3. 더 많이.

오류를 추적하는 가장 좋은 방법은 다시 작성하여 일부 의도적인 오류를 제거하거나 동기화하는 것입니다.

만약 그것이 당신의 문제를 해결하지 못한다면, 당신의 코드나 디자인에 있는 자바나 xml 파일 모두에 자원의 부적절한 사용으로 인한 어떤 결함이나 런타임 오류 또는 오류가 발생해야 합니다. (R)소스 파일이 당신의 자원을 제대로 인덱싱할 수 없기 때문에 당신은 그것을 인정해야 합니다.

변경하기 전에 프로젝트를 실행한 경우 변경한 내용을 주석으로 추가하고 프로젝트를 다시 빌드해 보십시오.

변화가 없을 것이기 때문에 그것은 확실히 작동할 것입니다.

정확한 오류를 추적하려면 변경 사항을 더 작은 모듈로 분할하여 변경 사항을 확인합니다.

예를 들어 - 버튼 클릭으로 목록을 표시하고 목록 값을 어댑터에 삽입하는 경우 먼저 목록을 표시할 수 있는지 여부를 확인한 다음 어댑터 오류를 확인합니다.

언급URL : https://stackoverflow.com/questions/17054000/cannot-resolve-symbol-r-in-android-studio

반응형