Android Studio에서 “기호를 확인할 수 없음”이라고 말하지만 프로젝트가 컴파일됩니다. compile files(‘libs/twitter4j-core-3.0.4.jar’) } 프로젝트가 잘

내 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. 청소하고 재건하십시오.

기묘한…