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

相关推荐
方舟小孩20 分钟前
开源办公软件海豹办公 1.9.15 实战 从模板异常到 Android WebView 资源回归
android
用户21816970493039 分钟前
Kotlin 语法四 协程
android
出师牛1 小时前
Android - 再探Handler
android
高晶1 小时前
Android 物联网组网实战:NFC 从零到落地
android·java
stevenzqzq1 小时前
android 维度和渠道
android
古法安卓1 小时前
Android-SystemUI ANR协程相关问题排查
android·java·android studio
xiaogai_gai2 小时前
生产汇报单查询同步实战:从金蝶云星空拉取到轻易云数据集成平台的工程化做法
android
穆梓兰煊2 小时前
Flutter端云协同推理架构解析
flutter·github
释厄6233 小时前
错误无误公理——错误正确本同源都迭代定律——逆转有价值
android·开发语言·kotlin
wno7043 小时前
MYSQL 常用合并函数
android·数据库·mysql