【Android】Flutter3.35项目启动超时问题

任何需要拉依赖的项目都会因不能直接访问外网被困扰,遇到超时没反应可以梳理下项目中各个需要拉依赖的项,为之仓库源改成国内镜像来解决。

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模拟器

相关推荐
私人珍藏库1 小时前
[Android] zip解压缩管理-全格式压缩包一键解压+打包
android·app·生活·工具·多功能
雨白2 小时前
C语言:动态内存分配
android
Android-Flutter2 小时前
android compose 自定义Painter绘制图形 使用
android·kotlin·compose
我是一颗柠檬2 小时前
【Java项目技术亮点】覆盖索引与索引下推优化
android·java·开发语言
vigor5124 小时前
MySQL通过Mango实现分库分表
android·数据库·mysql
阿pin6 小时前
Android随笔-Zygote中fork究竟是什么?
android·zygote·fork
Go-higher7 小时前
DriverTest 驾考知识卡片学习助手 —— 一款基于 Jetpack Compose 的现代 Android 学习APP
android·学习
安卓修改大师7 小时前
安卓修改大师APK控件修改实战教程
android
阿pin7 小时前
Android随笔-Zygote是什么?
android·zygote