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

相关推荐
执明wa13 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder13 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农13 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
用户693717500138414 小时前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端
GitLqr15 小时前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios
sg_knight15 小时前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
爱笑鱼15 小时前
Binder(四):ioctl(BINDER_WRITE_READ) 之后,事务怎样到达目标进程?
android
AFinalStone15 小时前
Android 7系统休眠唤醒(二)开机全链路—BootROM到Launcher
android·电源管理·休眠唤醒
Mr YiRan15 小时前
Android NDK开发之统计到未被回收的图片
android