flutter run長時間卡在Running Gradle task ”assembleDebug“...

建立Flutter工程後,編譯過程卡在了Running Gradle task ‘assembleDebug’…或者‘assembleRelease’

這時候一般在下載gradle並配置項目。所以可能出現的問題一般有兩種

一、下載過程出現問題。

Gradle目錄一般在 “C:\Users\[用戶名]\.gradle\” 下,若是非windows系統,請自行替換用戶主目錄。如果AndroidStudio開發,該路徑可以在"File | Settings | Build, Execution, Deployment | Build Tools | Gradle"中修改。

我使用的是 “gradle-6.0.1” ,可以在官網 https://gradle.org/releases/ 頁面下載對應的 “complete” 安裝包,放在 “C:\Users\[用戶名]\.gradle\wrapper\dists\gradle-6.0.1-all\99d3u8wxs16ndehh90lbbir67” 目錄下,gradle的版本可以在 "[工程目錄]\android\gradle\wrapper\gradle-wrapper.properties" 文件中設置

#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip

如果Running Gradle task報錯,提示Exception in thread "main" java.util.zip.ZipException: error in opening zip file,並且編譯時很快就提示此錯誤,沒有太長的等待時間。說明是gradle壓縮包損壞,解決方案是,去上一段所說的gradle目錄中,刪掉 “[Gradle目錄]\wrapper\dists\gradle-6.0.1-all\99d3u8wxs16ndehh90lbbir67” 文件夾下的zip文件以及解壓出的文件夾,重新編譯下載或者手動下載gradle壓縮包。

gradle目錄

二、gradle倉庫問題

如果gradle工具下載正常,但編譯過程依然卡住超過10分鐘不能結束。那可能就是倉庫問題,gradle的Maven倉庫在國外, 因此可以使用阿里雲的鏡像地址,如果搭梯子翻牆並且梯子質量很好,可能不會越到這個問題。

主要解決思路爲使用如下鏡像:

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' }

具體修改文件爲:"[工程目錄]\android\build.gradle" 和 "[Flutter安裝目錄]\packages\flutter_tools\gradle\flutter.gradle"。將文件中的 google()和jcenter() 替換爲上述鏡像。

[工程目錄]\android\build.gradle:

buildscript {
    ext.kotlin_version = '1.3.71'
    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.6.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
allprojects {
    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' }
    }
}
// 後文的配置不要改動
rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

[Flutter安裝目錄]\packages\flutter_tools\gradle\flutter.gradle:

import org.apache.tools.ant.taskdefs.condition.Os
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.Project
import org.gradle.api.Plugin
import org.gradle.api.Task
import org.gradle.api.file.CopySpec
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.bundling.Jar

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.5.0'
    }
}
// 後邊的配置不要動
android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
…………
…………

 

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