Android

Android Studio gradle sync 실패가 발생하는 경우 해결방법

build.gradle(:app) 파일에서 라이브러리들의 버전업 후 Sync를 진행하였는데 아래와 같은 오류가 발생하였다.

ERROR: The specified Gradle distribution 'https://services.gradle.org/distributions/gradle-4.10.1-all.zip' does not appear to contain a Gradle distribution.

이런 경우는 안드로이드 Gradle plugin버전과 사용하려는 Gradle 버전이 다른 경우 발생한다. 

그럼 이와 같은 경우는 왜 발생하는 것일까? 원인은 하나이다. 특정 앱 프로젝트를 업데이트할 일이 없었고, 안드로이드 스튜디오 버전은 업데이트 되어서 Gradle 버전도 올라갔다.  이 상황에서 해당 특정 프로젝트를 불러와서 빌드하려고 하면 오류가 발생한다. 

 

 

Android 스튜디오를 업데이트하면 Gradle 또한 사용 가능한 최신 버전으로 업데이트하라는 메시지가 표시될 수 있습니다. 업데이트를 수락하거나 프로젝트의 빌드 요구사항에 따라 버전을 수동으로 지정할 수 있습니다.

다음 표는 각 버전의 Android Gradle 플러그인에 필요한 Gradle 버전을 보여줍니다. 최상의 성능을 위해서는 Gradle과 플러그인을 가능한 최신 버전으로 사용해야 합니다.

 

 

플러그인 버전                                                        필요한 Gradle 버전

1.0.0~1.1.3 2.2.1~2.3
1.2.0~1.3.1 2.2.1~2.9
1.5.0 2.2.1~2.13
2.0.0~2.1.2 2.10~2.13
2.1.3~2.2.3 2.14.1+
2.3.0+ 3.3+
3.0.0+ 4.1+
3.1.0+ 4.4+
3.2.0~3.2.1 4.6+
3.3.0~3.3.2 4.10.1+
3.4.0~3.4.1 5.1.1+
3.5.0-3.5.3 5.4.1+
3.6.0+ 5.6.4+

출처 : 개발자 문서 : Gradle update

 

 

[해결방법]

Android 스튜디오의 File > Project Structure > Project 메뉴에서 변경할 수 있다.

 


 

또는 최상위 gradle/wrapper/gradle-wrapper.properties 파일의 Gradle 배포 참조를 편집하여 Gradle 버전을 지정할 수 있다. 

#Sun Apr 05 19:28:45 PDT 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip

 

또는 최상위 build.gradle 파일에서 플러그인 버전을 지정할 수 있습니다. 플러그인 버전은 Android 스튜디오 프로젝트에 빌드된 모든 모듈에 적용됩니다. 다음 예는 build.gradle 파일에서 플러그인을 버전 3.6.0으로 설정합니다.
    buildscript {
        repositories
{
           
// Gradle 4.1 and higher include support for Google’s Maven repo using
           
// the google() method. And you need to include this repo to download
           
// Android Gradle plugin 3.0.0 or higher.
            google
()
           

       
}
        dependencies
{
            classpath
‘com.android.tools.build:gradle:3.6.0’
       
}
   
}
   

Leave a Reply

error: Content is protected !!