오류 현상
Android 프로젝트를 처음 생성하고 빌드할 때 다음과 같은 오류가 발생할 수 있습니다:
프로젝트 'Demo' 구성 중 문제가 발생했습니다.
> 모든 파일을 ':classpath' 구성에 대해 해결할 수 없습니다.
> com.android.tools.build:gradle:4.2.2를 해결할 수 없습니다.
필요한 항목:
프로젝트 :
> com.android.tools.build:gradle:8.0.2의 일치하는 변형을 찾을 수 없습니다. 소비자는 런타임에 사용하기 위한 라이브러리, Java 8과 호환되며 jar로 패키지화되고, 종속성이 외부로 선언된 라이브러리를 찾도록 구성되었으며, 'org.gradle.plugin.api-version' 속성 값 '8.0'이 필요하지만:
- 'apiElements' 변형 com.android.tools.build:gradle:8.0.2는 jar로 패키지화된 라이브러리를 선언하고 종속성이 외부로 선언됩니다:
- 이 구성 요소는 컴파일 시간에 사용하기 위한 구성 요소를 선언하며 Java 11과 호환되지만, 소비자는 런타임에 사용하기 위한 구성 요소를 필요로 하며 Java 8과 호환되어야 합니다
- 다른 호환 속성:
- org.gradle.plugin.api-version에 대해 아무 것도 언급하지 않음 (필요 값 '8.0')
- 'javadocElements' 변형 com.android.tools.build:gradle:8.0.2는 런타임에 사용하기 위한 구성 요소를 선언하고 종속성이 외부로 선언됩니다:
- 이 구성 요소는 문서를 선언하고 소비자는 라이브러리를 필요로 합니다
- 다른 호환 속성:
- 대상 Java 버전에 대해 아무 것도 언급하지 않음 (Java 8과의 호환성 필요)
- 요소가 jar로 패키지화되어야 함에 대해 아무 것도 언급하지 않음
- org.gradle.plugin.api-version에 대해 아무 것도 언급하지 않음 (필요 값 '8.0')
- 'runtimeElements' 변형 com.android.tools.build:gradle:8.0.2는 런타임에 사용하기 위한 라이브러리를 선언하며 jar로 패키지화되고 종속성이 외부로 선언됩니다:
- 이 구성 요소는 Java 11과 호환되는 구성 요소를 선언하지만 소비자는 Java 8과 호환되는 구성 요소를 필요로 합니다
- 다른 호환 속성:
- org.gradle.plugin.api-version에 대해 아무 것도 언급하지 않음 (필요 값 '8.0')
- 'sourcesElements' 변형 com.android.tools.build:gradle:8.0.2는 런타임에 사용하기 위한 구성 요소를 선언하고 종속성이 외부로 선언됩니다:
- 이 구성 요소는 문서를 선언하고 소비자는 라이브러리를 필요로 합니다
- 다른 호환 속성:
- 대상 Java 버전에 대해 아무 것도 언급하지 않음 (Java 8과의 호환성 필요)
- 요소가 jar로 패키지화되어야 함에 대해 아무 것도 언급하지 않음
- org.gradle.plugin.api-version에 대해 아무 것도 언급하지 않음 (필요 값 '8.0')
> com.android.tools.build:gradle:8.0.2를 해결할 수 없습니다.
필요한 항목:
프로젝트 : > com.android.application:com.android.application.gradle.plugin:8.0.2
프로젝트 : > com.android.library:com.android.library.gradle.plugin:8.0.2
> com.android.tools.build:gradle:8.0.2의 일치하는 변형을 찾을 수 없습니다. 소비자는 런타임에 사용하기 위한 라이브러리, Java 8과 호환되며 jar로 패키지화되고, 종속성이 외부로 선언된 라이브러리를 찾도록 구성되었으며, 'org.gradle.plugin.api-version' 속성 값 '8.0'이 필요하지만:
- 'apiElements' 변형 com.android.tools.build:gradle:8.0.2는 jar로 패키지화된 라이브러리를 선언하고 종속성이 외부로 선언됩니다:
- 이 구성 요소는 컴파일 시간에 사용하기 위한 구성 요소를 선언하며 Java 11과 호환되지만, 소비자는 런타임에 사용하기 위한 구성 요소를 필요로 하며 Java 8과 호환되어야 합니다
- 다른 호환 속성:
- org.gradle.plugin.api-version에 대해 아무 것도 언급하지 않음 (필요 값 '8.0')
- 'javadocElements' 변형 com.android.tools.build:gradle:8.0.2는 런타임에 사용하기 위한 구성 요소를 선언하고 종속성이 외부로 선언됩니다:
- 이 구성 요소는 문서를 선언하고 소비자는 라이브러리를 필요로 합니다
- 다른 호환 속성:
- 대상 Java 버전에 대해 아무 것도 언급하지 않음 (Java 8과의 호환성 필요)
- 요소가 jar로 패키지화되어야 함에 대해 아무 것도 언급하지 않음
- org.gradle.plugin.api-version에 대해 아무 것도 언급하지 않음 (필요 값 '8.0')
- 'runtimeElements' 변형 com.android.tools.build:gradle:8.0.2는 런타임에 사용하기 위한 라이브러리를 선언하며 jar로 패키지화되고 종속성이 외부로 선언됩니다:
- 이 구성 요소는 Java 11과 호환되는 구성 요소를 선언하지만 소비자는 Java 8과 호환되는 구성 요소를 필요로 합니다
- 다른 호환 속성:
- org.gradle.plugin.api-version에 대해 아무 것도 언급하지 않음 (필요 값 '8.0')
- 'sourcesElements' 변형 com.android.tools.build:gradle:8.0.2는 런타임에 사용하기 위한 구성 요소를 선언하고 종속성이 외부로 선언됩니다:
- 이 구성 요소는 문서를 선언하고 소비자는 라이브러리를 필요로 합니다
- 다른 호환 속성:
- 대상 Java 버전에 대해 아무 것도 언급하지 않음 (Java 8과의 호환성 필요)
- 요소가 jar로 패키지화되어야 함에 대해 아무 것도 언급하지 않음
- org.gradle.plugin.api-version에 대해 아무 것도 언급하지 않음 (필요 값 '8.0')
원인
이 문제는 주로 JDK 버전 호환성 문제로 인해 발생합니다. Gradle이 요구하는 Java 버전과 프로젝트에서 사용하는 JDK 버전이 일치하지 않을 때 발생합니다.
해결 방법
-
Android Studio에서
File>Project Structure로 이동합니다. -
SDK Location탭을 선택하고,Gradle Settings링크를 클릭합니다. -
Gradle JDK항목에서 Android Studio 기본 제공jbr을 선택합니다.
이렇게 설정하면 Gradle이 자동으로 다시 빌드되어 문제가 해결됩니다.
추가 팁: Maven 미러 설정
국내에서는 외부 Maven 저장소 접속이 느릴 수 있으므로, 다음과 같은 국내 미러를 사용하면 빌드 속도를 향상시킬 수 있습니다:
buildscript {
repositories {
// 국내 미러로 Gradle 프로젝트 빌드 속도 향상
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.2'
// 주의: 애플리케이션 종속성은 개별 모듈의 build.gradle 파일에 배치해야 합니다
}
}
// 하위 프로젝트/모듈에 공통된 구성 옵션을 추가할 수 있는 최상위 빌드 파일
plugins {
id 'com.android.application' version '8.0.2' apply false
id 'com.android.library' version '8.0.2' apply false
}