programing

Android Studio에서 "기호를 확인할 수 없음"이라고 말하지만 프로젝트가 컴파일됩니다.

nasanasas 2020. 8. 29. 11:10
반응형

Android Studio에서 "기호를 확인할 수 없음"이라고 말하지만 프로젝트가 컴파일됩니다.


내 build.gradle에서 다음을 사용하여 AndroidStudio에서 twitter4j를 가져옵니다.

dependencies {
  compile 'com.android.support:support-v4:18.0.+'
  compile files('libs/twitter4j-core-3.0.4.jar')
}

프로젝트가 잘 컴파일되고 문제없이 트위터 개체를 만들 수 있습니다. 그러나 Android 스튜디오에서는 해당 라이브러리를 참조하는 모든 항목에 "기호를 확인할 수 없음"이 표시되고 빨간색으로 표시됩니다. Android Studio가 라이브러리를 인식하도록하려면 어떻게해야합니까?

이미 프로젝트를 다시 빌드하고 ./gradlew clean을 시도하고 프로젝트를 닫았다가 다시 열었습니다.


이것이 작동할지 여부는 알 수 없지만 지금까지 생각한 유일한 생각 : AS 내의 파일 트리에서 jar 파일을 마우스 오른쪽 단추로 클릭하고 "라이브러리로 추가 ..."를 선택합니다.

편집 : "파일"-> "캐시 무효화 ..."를 수행하고 "무효화 및 다시 시작"옵션을 선택하여이 문제를 해결할 수 있습니다.

편집 2 : 이 수정은 모든 유사한 사건에 대해 작동해야하며 twitter4j 특정 해결 방법이 아닙니다.


파일> 프로젝트 구조> (프로젝트 선택)> 종속성에서 종속성 순서를 변경해보십시오.

Invalidate Caches는 나를 위해 작동하지 않았지만 목록의 맨 아래에서 맨 위로 내 빌드를 이동했습니다.


이것이 나를 위해 일한 것입니다.

프로젝트 패널에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭 Open Module Settings하고 팝업 메뉴에서 선택 합니다.

그런 다음 Compile SDK Version사용 가능한 최소 버전 (프로젝트에서 설정 한 최소 SDK 버전)으로 변경합니다. Android 스튜디오가 모든 것을로드 할 때까지 기다립니다.

오류가 발생하면 무시합니다.

이제 Java 파일로 이동하면 Android Studio에서 가져 오기를 제안합니다.

import android.support.v4.app.FragmentActivity;

그것을 가져온 다음 돌아가서 Open Module Settings컴파일 sdk 버전을 이전 버전으로 변경하십시오.

로드되고 짜릿해질 때까지 기다리십시오.


내 경우 가져온 라이브러리 프로젝트로 인해 build.gradle에 무언가를 입력하고 다시 삭제하고 지금 동기화를 누르면 오류가 사라졌습니다.


또한 내 Android 라이브러리 중 일부 (Android Studio 3.0 및 3.1.1 사용)에 따라 Android 앱에서이 문제가 발생했습니다.

lib를 업데이트하고 앱으로 돌아가서 Gradle Sync를 트리거 할 때마다 Android Studio는 lib에 대한 코드 변경 사항을 감지 할 수 없었습니다. 컴파일은 잘 작동했지만 Android Studio는 lib를 사용하는 일부 코드에서 빨간색 오류 줄을 표시했습니다.

조사한 후 gradle이 내 라이브러리의 이전 컴파일 버전을 계속 가리 키기 때문이라는 것을 알았습니다. yourProject / .idea / libraries /로 이동하면 컴파일 된 libs 버전에 대한 링크가 포함 된 xml 파일 목록이 표시됩니다. 이러한 파일은 Gradle__artifacts _ *. xml로 시작합니다 (여기서 *는 libs의 이름).

따라서 Android Studio가 최신 버전의 libs를 가져 오려면 이러한 Gradle__artifacts _ *. xml 파일을 삭제해야합니다. 그러면 Android Studio가 해당 파일을 다시 생성하여 최신 컴파일 된 libs 버전을 가리 킵니다.

"Gradle 동기화"를 클릭 할 때마다 수동으로 수행하고 싶지 않은 경우 (누가 원하는 작업 ...),이 작은 gradle 작업을 앱의 build.gradle 파일에 추가 할 수 있습니다.

task deleteArtifacts {
    doFirst {
        File librariesFolderPath = file(getProjectDir().absolutePath + "/../.idea/libraries/")
        File[] files = librariesFolderPath.listFiles({ File file -> file.name.startsWith("Gradle__artifacts_") } as FileFilter)

        for (int i = 0; i < files.length; i++) {
            files[i].delete()
        }
    }
}

그리고 앱이 gradle 동기화를 수행하기 전에 항상이 작업을 실행하려면 Gradle 창으로 이동 한 다음 yourApp / Tasks / other /에서 "deleteArtifacts"작업을 찾아 마우스 오른쪽 단추로 클릭하고 "실행 동기화 전 "(아래 참조).

작업 실행을 구성하는 Gradle 창

이제 Gradle 동기화를 수행 할 때마다 Android Studio는 최신 버전의 libs를 사용해야합니다.


내 프로젝트 에서이 문제 (빨간색 코드이지만 올바르게 작동 함)에 살았을 때;

먼저 (File-> Indicate Cashes)-> (Invalidate and Restart)로 만들었습니다.

마지막으로 내 앱에서 build.gradle 파일을 다시 동기화합니다. 문제가 해결 된 후.


Invalidate Caches / Restart 이번에는 나를 위해 일하지 않았습니다.

다음과 같은 해결책을 찾았습니다.

  1. build.gradle 에서 compile ***또는 implementation ***행을 제거하십시오 .

  2. 청소하고 재건하십시오. 여기에서 오류가 발생해야합니다.

  3. 1 단계의 줄을 다시 build.gradle에 추가합니다.

  4. 청소하고 재건하십시오.

기묘한...


이 문제는 Glass 프로젝트가 Android Studio의 기본 위치에 설치된 SDK를 사용하지 않을 때 발생했습니다. 모든 것을 다시 다운로드하지 않으려 고했기 때문에 이전에 ADT에서 사용했던 다른 위치를 사용하고있었습니다. 프로젝트를 Android Studio 설치 위치의 SDK 위치로 다시 가리키면 문제가 해결되었습니다.


나는 며칠 동안이 문제가 있었고 마침내 그것을 알아 냈습니다! 다른 모든 솔루션은 나를 위해 작동하지 않았습니다.

솔루션 : 프로젝트 경로에 특수 문자가 있습니다!

그것들 중 어느 것도 가지고 있지 않은지 확인하고 당신은 괜찮을 것입니다. 또는 적어도 다른 솔루션 중 하나가 당신을 위해 작동해야합니다.

이것이 누군가를 돕기를 바랍니다!


최근 Android Studio 1.3에서 동일한 문제가 발생했습니다. 유일한 해결책은 .gradle 및 .idea 폴더를 제거하고 프로젝트를 Android Studio로 다시 가져 오는 것입니다.


받아 들인 대답을 시도했지만 성공하지 못한 사람들을 위해

나는 또한 받아 들여진 대답을 시도했지만 나를 위해 일하지 않았습니다. 그 후 내 프로젝트를 저장소로 업데이트하고 프로젝트를 동기화했으며 해결할 수 없음 경고가 사라졌습니다.


캐시 무효화가 작동하지 않았습니다 (이번에는). 나를 위해 gradle을 변경하고 다시 동기화하는 것으로 충분했습니다. 또는 https://stackoverflow.com/a/29565362/2000162


제 경우에는 GUI를 사용하여 새 파일을 만들고 파일 내에 인터페이스를 정의했습니다. 파일이 "java"파일이 아니기 때문에이 기호 오류가 계속 발생했습니다. 확장이 전혀 없었습니다.

파일 확장자를 ".java"로 수정 한 후 시스템은 기호를 올바르게 찾습니다.


제 경우에는 jar 파일에 META-INF / MANIFEST.MF 파일이 없습니다. 하나를 추가하면 작동했습니다!


AndroidStudio 2.2.3으로 작업하는 경우 솔루션은 Gradle 설정에서 로컬을 사용하도록 gradle 래퍼 / 배포를 변경하는 것이 었습니다 ( "권장"임에도 불구하고). 여기에 이미지 설명 입력


이것은 나를 위해 일했습니다. (File-> Indicate Cashes)-> (Invalidate and Restart).


캐시 무효화 / 다시 시작 또는 프로젝트 정리-> 프로젝트 다시 작성을 시도했습니다. 이것들은 나를 위해 작동하지 않았습니다.

최종 해결책은 IDE의 왼쪽에 프로젝트 창을 열고 프로젝트 모드에서 .gradle 및 .idea 폴더를 삭제 한 다음 캐시를 무효화하고 다시 시작할 수 있습니다. 이것은 그것을 고쳤습니다.


If nothing else helped, you could do as Android Studio suddenly cannot resolve symbols recommends:

  • Exit Android Studio
  • Back up your project
  • Delete all the .iml files and the .idea folder
  • Relaunch Android Studio and reimport your project

Change compile to implementation in the build.gradle.


Changing the language injection settings worked for me.

Place the cursor on any of the red underlined code and Alt + Enter

여기에 이미지 설명 입력

Now select Language Injection Settings and a window will open as shown below.

여기에 이미지 설명 입력

Uncheck the selected option and click Ok

여기에 이미지 설명 입력

Hope this helps somebody.


It happened to me when I removed the whole files in .gradle/caches, then studio downloaded the dependences. The dependences not showed in the External Libraries but I can build App successfully. rebuild clean Invalidate and Restart have no effect. I solved the problem by the steps:

  • Close Android Studio completely
  • Remove .idea package in your project
  • Restart Android Studio

I have tried this but nothing worked for me:

  • Invalidate Caches / Restart
  • Changing the order of dependencies
  • Sync project with Gradle Files
  • Clean -> Rebuild Project

In my case, just do:

  • Delete all files in .idea/libraries folder
  • Rebuild Project

For me I updated gradle-wrapper.properties into 4.4

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

I found easiest way

Identify the library which is causing syntax error in Studio.

For Example if AppCompatActivity is showing error then you will perform below operation on AppCompat Dependency.

  • Remove dependency which is showing syntax error & Sync.
  • Add again & Sync.

That's It, error gone!

Before

전에

After

후


None of the answers above works for me.

After a lots of attempts, I upgraded com.android.tools.build:gradle in Project/build.gradle from 2.3.0 to 3.0.1, and it works.

I guess the version of the com.android.tools.build:gradle should be match to the version of AndroidStudio, and my AS version is 3.2.1


모든 파일을 닫고 Android Studio를 닫는 것이 저에게 효과적입니다.


Android Studio를 다시 시작해야합니다.

참고 URL : https://stackoverflow.com/questions/19508649/android-studio-says-cannot-resolve-symbol-but-project-compiles

반응형