啓動 flutter項目時報Could not find com.android.tools.build:gradle:3.2.1.

Error running Gradle:
ProcessException: Process "D:\Android\APP path\flutter_app2\flutter_app2\android\gradlew.bat" exited abnormally:

> Configure project :app

Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\Android\APP path\flutter_app2\flutter_app2\android\app\build.gradle' line: 25

* What went wrong:
A problem occurred evaluating project ':app'.
> Could not resolve all artifacts for configuration 'classpath'.
   > Could not find com.android.tools.build:gradle:3.2.1.
     Searched in the following locations:
       - https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
       - https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.jar
       - http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
       - http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.jar
     Required by:
         unspecified:unspecified:unspecified

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full
insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
Picked up _JAVA_OPTIONS: -Djava.NET.preferIPv4Stack=true
  Command: D:\Android\APP path\flutter_app2\flutter_app2\android\gradlew.bat app:properties

Please review your Gradle project setup in the android/ folder.

大致意思是說:運行Gradle時出錯,導致構建flutter構建失敗

原因是因爲獲取不到 com.android.tools.build:gradle:3.2.1

原因一:

獲取不到的原因一般是因爲在中國沒辦法訪問谷歌資源(有外網,翻牆等的除外),此時的解決辦法是 改用阿里的鏡像

分兩步:

  • 第一步:修改掉項目下的 android目錄下的 build.gradle 文件,把 google()jcenter()這兩行去掉。
    並在下面添加阿里的鏈接 (注意:有兩處修改)
    maven { url 'https://maven.aliyun.com/repository/google' }
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    
    如下:
    buildscript {
        repositories {
    //        google()
    //        jcenter()
    		// 添加
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/jcenter' }
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
        }
    }
    
    allprojects {
        repositories {
    //        google()
    //        jcenter()
    //        maven {
    //            url 'https://google.bintray.com/exoplayer/'
    //        }
    		// 添加
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/jcenter' }
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
        }
    }
    
    rootProject.buildDir = '../build'
    subprojects {
        project.buildDir = "${rootProject.buildDir}/${project.name}"
    }
    subprojects {
        project.evaluationDependsOn(':app')
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    
    
  • 第二步:修改 Flutter SDK 包下的 flutter.gradle 文件
    路徑根據你的sdk存放位置,例如我的是D:\SDK\Flutter\packages\flutter_tools\gradle\flutter.gradle
    同樣將 google()jcenter() 修改爲阿里的鏈接
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    
    如下:
    buildscript {
        repositories {
            //google()
            //jcenter()
            // 添加
    		maven { url 'https://maven.aliyun.com/repository/jcenter' }
    		maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
        }
    }
    

至此,在國內沒辦法訪問谷歌資源的問題就解決了

然而,我的問題並沒解決

仔細看報錯信息後,發現找不到以下資源地址

    -  https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
    -  https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.jar
    -  http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
    -  http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.jar

看到這裏說明阿里鏈接是配置上了的,之所以找不到是因爲gradle-3.2.1這個3.2.1版本太高了,應該是最新的

阿里連接中的gradle最高版本好像才3.1.2,所以獲取不到

所以,解決辦法是將項目下的android目錄下的build.gradle文件和flutter SDK包下的flutter.gradle文件中的gradle版本改爲阿里鏡像中存在的版本

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

來自於 https://blog.csdn.net/qq_33684444/article/details/86656301

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章