任何需要拉依赖的项目都会因不能直接访问外网被困扰,遇到超时没反应可以梳理下项目中各个需要拉依赖的项,为之仓库源改成国内镜像来解决。
1 前置条件
flutter:3.35.1 stable
Dart:3.9.0
jdk:17
AGP:≥8.9
2 省流照抄
2.1 环境变量
2.1.1 系统变量配置
| 变量名 | 值 | 备注 |
|---|---|---|
| JAVA_HOME | D:\Develop\Java\jdk17 | |
| PUB_HOSTED_URL | https://pub.flutter-io.cn | |
| FLUTTER_STORAGE_BASE_URL | https://storage.flutter-io.cn | |
| FLUTTER_GIT_URL | https://gitee.com/mirrors/Flutter.git | |
| FLUTTER_HOME | D:\Develop\Flutter\flutter | |
| GRADLE_USER_HOME | D:\Develop\AndroidStudio.gradle | 非必须 |
| PUB_CACHE | D:\Develop\Flutter\DartCahes | 非必须 |
| ANDROID_AVD_HOME | D:\Develop\AndroidStudio\AVD | 非必须 |
2.1.2 系统Path新增项
text
%JAVA_HOME%\bin
%FLUTTER_HOME%\bin
%GRADLE_USER_HOME% (非必须)
D:\Develop\AndroidStudio\sdk\platform-tools (非必须)
2.2 Gradle 发行版下载地址
项目路径\android\gradle\wrapper\gradle-wrapper.properties
properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
# 默认distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip
distributionUrl=https\://mirrors.aliyun.com/gradle/distributions/v8.12.0/gradle-8.12-all.zip
2.3 Gradle 插件和项目依赖的仓库源
项目路径\android\settings.gradle.kts
kotlin
pluginManagement {
//...其余不变
repositories {
// 插入下面国内镜像放在最前面
maven { url = uri("https://maven.aliyun.com/repository/google") }
maven { url = uri("https://maven.aliyun.com/repository/public") }
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
google()
mavenCentral()
gradlePluginPortal()
}
}
//...其余不变
flutter3.16之后的版本创建项目默认是KotlinDSL,与之前GroovyDSL的仓库配置语法有异,如果你的项目中不是\android\settings.gradle.kts而是\android\settings.gradle文件应参考: Gradle插件下载源配置
3 解决过程记录
新搭了一套安卓开发环境创建flutter项目,做了前面第二章节的周全配置,但初始化启动还是遇见下面问题
java
Launching lib\main.dart on 运行设备名称 in debug mode...
Running Gradle task 'assembleDebug'...
项目在初始化第一件事会启动或下载Gradle发行版,所以先确认Gradle发行版的依赖信息
在\android\gradle\wrapper\gradle-wrapper.properties中:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip
这个外网的源肯定没法直接拉下来,让豆包给我提供了阿里的
distributionUrl=https\://mirrors.aliyun.com/gradle/distributions/gradle-8.12-all.zip
重新运行开始报空指针,亲自打开路径确认了一下
发现有效链接应该是带版本号的https\://mirrors.aliyun.com/gradle/distributions/v8.12.0/gradle-8.12-all.zip!!!
:RZ豆包。。。
修改后重新运行,在路径下看到zip包成功拉下来了,但是日志还是没变:
java
Launching lib\main.dart on 运行设备名称 in debug mode...
Running Gradle task 'assembleDebug'...
终端输入.\gradlew assembleDebug --info查看详细日志,
log
PS > cd android
PS \android > .\gradlew assembleDebug --info
Welcome to Gradle 8.12!
省略一万字
> Configure project :gradle
Evaluating project ':gradle' using build file 'D:\Develop\Flutter\flutter\packages\flutter_tools\gradle\build.gradle.kts'.
Resolved plugin [id: 'org.gradle.java-gradle-plugin']
Resolved plugin [id: 'org.gradle.groovy']
Resolved plugin [id: 'org.gradle.kotlin.kotlin-dsl', version: '5.1.2']
Resolved plugin [id: 'org.jetbrains.kotlin.jvm', version: '1.9.20']
Downloading https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/2.0.21/kotlin-gradle-plugin-2.0.21-gradle85.jar to D:\Develop\AndroidStudio\.gradle\.tmp\gradle_download14173743570445407172bin
<-------------> 0% INITIALIZING [4m 31s]
> Evaluating settings > :gradle > Resolve files of configuration 'classpath' > kotlin-gradle-plugin-2.0.21-gradle85.jar > 3.6 MiB/14.2 MiB downloade
从日志中看到gradle8.12毫无疑问ok了,导致现在卡住的问题是访问 plugins.gradle.org下载kotlin-gradle-plugin/2.0.21/...超时
在项目路径\android\settings.gradle.kts中为Gradle 插件和项目依赖添加有效源:
kotlin
pluginManagement {
//...其余不变
repositories {
// 插入下面国内镜像放在最前面
maven { url = uri("https://maven.aliyun.com/repository/google") }
maven { url = uri("https://maven.aliyun.com/repository/public") }
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
google()
mavenCentral()
gradlePluginPortal()
}
}
//...其余不变
初始化运行成功!
log
BUILD SUCCESSFUL in 4m 23s
49 actionable tasks: 48 executed, 1 up-to-date
Watched directory hierarchies: [D:\Develop\Flutter\flutter\packages\flutter_tools\gradle, D:\Develop\AndroidStudio\Projects\fwitter\android]
再看看: AS快速连接MUMU模拟器?