当前位置:   article > 正文

修改Flutter3.19.2SDK的镜像源为国内镜像源 解决一直卡在Running Gradle task ‘assembleDebug‘与Executfailed for task ‘app:x‘_running gradle task 'assembledebug'...

running gradle task 'assembledebug'...

该文档仅为个人解决记录

修改 Flutter SDK 使用的 maven 镜像

参考自:https://blog.csdn.net/qq_39105508/article/details/133992154

在 flutter3.19.2\packages\flutter_tools\lib\src 下的 http_host_validator.dart 文件中,找到 const String kMaven = 'https://maven.google.com/';,将 Flutter SDK 使用的 maven 镜像修改为国内镜像

const String kMaven = 'https://maven.aliyun.com/repository/google/';
  • 1

修改 Flutter SDK 下载资源时访问的库的镜像

参考自:https://blog.csdn.net/libra_boy/article/details/134712545

由于 Flutter SDK 下载资源,会尝试使用环境变量

// Overridable environment variables.
const String kPubDevOverride = 'PUB_HOSTED_URL';
  • 1
  • 2

所以在系统的环境变量中添加 PUB_HOSTED_URL 和 FLUTTER_STORAGE_BASE_URL,其值分别为:

PUB_HOSTED_URL  设置为  https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL  设置为  https://storage.flutter-io.cn
  • 1
  • 2

我到这里成功了,此时是新电脑采用了上述设置就成功了,如果还不行,可以进行如下设置,下述设置旧电脑中的解决设置。
我到上述步骤就成功了,存在一种可能,我在新电脑的 Android Studio 中,下载 gradle 成功了,也有可能上述配置就可以了,可以试试看 flutter run 能不能成功。
如果你到这就成功了,修改 Flutter SDK 构建项目时 gradle 使用的镜像(https://www.yuque.com/u27599042/rwe4wi/ozui5zabcpqucvz0#pHQxV),我感觉是可以配置一下的,我后面在上述配置完成后,进行此项配置,Flutter 项目还是正常启动了。

下述步骤,也是我在旧电脑中解决 Flutter 项目启动时,一直卡在 Running Gradle task ‘assembleDebug’ 的解决方法

修改 Flutter 项目使用的 gradle 为本地自己下载的 gradle

对于 gradle 去官网 https://gradle.org/ 下载特别慢的,可以在 https://blog.csdn.net/nudt_spy/article/details/124208822 中手动将 gradle 下载到本地
然后在 flutter 项目\android\gradle\wrapper 下的 gradle-wrapper.properties 文件中,配置使用本地的 gradle,修改 distributionUrl 配置项,distributionUrl 配置项的取值格式参考如下:

distributionUrl=file\:///D:/development-environment/flutter/gradle/gradle-7.4.2-all.zip
  • 1

修改 Flutter SDK 构建项目时 gradle 使用的镜像

参考自:https://blog.csdn.net/qq_44408123/article/details/115597959

在 flutter3.19.2\packages\flutter_tools\gradle\src\main\groovy 下的 flutter.groovy 文件中,找到 buildscript,将 Flutter SDK 构建项目时 gradle 使用的镜像修改为国内镜像

修改 flutter3.19.2\packages\flutter_tools\gradle\src\main\groovy 下的 flutter.groovy 文件,是由于 flutter3.19.2\packages\flutter_tools\gradle 下的 flutter.gradle 文件中 apply from: "$pathToThisDirectory/src/main/groovy/flutter.groovy" 指向了该文件

// This buildscript block supplies dependencies for this file's own import
// declarations above. It exists solely for compatibility with projects that
// have not migrated to declaratively apply the Flutter Gradle Plugin;
// for those that have, FGP's `build.gradle.kts`  takes care of this.
buildscript {
    repositories {
        // google()
        // mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
    }
    dependencies {
        // When bumping, also update:
        //  * ndkVersion in FlutterExtension in packages/flutter_tools/gradle/src/main/flutter.groovy
        //  * AGP version constants in packages/flutter_tools/lib/src/android/gradle_utils.dart
        //  * AGP version in dependencies block in packages/flutter_tools/gradle/build.gradle.kts
        classpath("com.android.tools.build:gradle:7.3.0")
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

修改 Flutter 项目中的 build.gradle 中使用的镜像

新版本的 flutter 项目中无 buildscript
新电脑中,在进行 1、2、4 配置之后进行此项配置,启动 Flutter 项目出现了如下报错,即使参考 https://blog.csdn.net/qq_44408123/article/details/115597959 中进行配置修改,添加了 buildscript 还是启动 Flutter 项目失败了,然后修改为本地的 gradle 还是失败了,还原至只进行 1、2、4 配置,才 Flutter 项目启动成功
自己粗心导致如下报错
仔细阅读报错信息后,才发现是 **maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }** 使用的不是安全协议地址,flutter 不支持在没有明确选择加入的情况下对存储库使用不安全的协议,将 http://maven.aliyun.com/nexus/content/groups/public 修改为安全协议地址 https://maven.aliyun.com/nexus/content/groups/public 即成功了
该报错的解决在下面的其他报错 2
image.png

在 flutter 项目\android\build.gradle 文件中,修改 allprojects

allprojects {
    repositories {
        // google()
        // mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

其他报错 1

对于 https://blog.csdn.net/qq_44408123/article/details/115597959 中,如果修改 private static final String DEFAULT_MAVEN_HOSTprivate static final String DEFAULT_MAVEN_HOST = "https://storage.flutter-io.cn.com"; 后失败,出现如下报错的,可以尝试不修改,使用默认的(会比较慢,等比较久)
image.png

其他报错 2 Execution failed for task ‘:app:checkDebugAarMetadata’. Could not resolve all dependencies for configuration ‘:app:debugRuntimeClasspath’.

这是在新电脑中,在进行 1、2、4 配置之后进行 5 配置,启动 Flutter 项目出现了如下报错
自己粗心导致如下报错

image.png
该报错的原因是 maven { url '...' } 中使用的地址存在非安全协议地址,flutter 不支持在没有明确选择加入的情况下对存储库使用不安全的协议,因此将非安全协议地址修改为安全协议地址即可

其他报错 3 Execution failed for task ‘:app:xxx‘.

参考自:https://blog.csdn.net/Katie_fly/article/details/109680958

对于此类报错的解决,可以尝试修改 flutter 项目/android/build.gradle 文件中 repositories 配置使用的镜像源为国内的镜像源:

maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
  • 1
  • 2
  • 3

如果有 buildscript 配置项,其与 allprojects 类似,修改其中的 repositories

allprojects {
    repositories {
        // google()
        // mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

原先(旧电脑中)解决 Flutter 项目启动时,一直卡在 Running Gradle task ‘assembleDebug’ 记录

在 VS Code 集成终端中,运行如下命令,启动运行项目

flutter run
  • 1

对于一直卡在 Running Gradle task 'assembleDebug',可以先参考 https://blog.csdn.net/nudt_spy/article/details/124208822 手动将 gradle 下载到本地(可能是由于 gradle 服务器在国外导致其下载不下来,然后就卡住了),然后参考 https://blog.csdn.net/qq_44408123/article/details/115597959 进行配置的修改,至于 com.android.tools.build:gradle 的版本号,可以参考 flutter3.19.2\packages\flutter_tools\gradle\src\main\groovy\flutter.groovy 文件中 90 行左右的版本号。
对于 https://blog.csdn.net/qq_44408123/article/details/115597959 中,如果修改 private static final String DEFAULT_MAVEN_HOST 后失败,出现如下报错的,可以尝试不修改,使用默认的(会比较慢,等比较久)
image.png
对于上述方法,我是成功了,就是第一次等的还是有点久,使用的 Flutter 版本为 3.19.2

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

项目名\android\gradle\wrapper\gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=file\:///D:/development-environment/flutter/gradle/gradle-7.4.2-all.zip
  • 1
  • 2
  • 3
  • 4
  • 5

image.png
image.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/519584
推荐阅读
相关标签
  

闽ICP备14008679号