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

相关推荐
故渊at1 小时前
第十四板块:Android 硬件抽象与安全加固 | 第三十四篇:Hardware Composer (HWC) 与 显示安全(HDCP)
android·安全·composer·安全加固·hwc·硬件抽象
KIO no way1 小时前
AI内容编排是什么_聊聊CSDN_AI数字营销背后的分发逻辑
android·人工智能
故渊at2 小时前
第十四板块:Android 硬件抽象与安全加固 | 第三十三篇:Verified Boot 与 硬件信任链(Trusty TEE)
android·安全·信任链·verified
风华圆舞2 小时前
鸿蒙 MICROPHONE 权限在 Flutter 项目里怎么处理
flutter·华为·harmonyos
Tangyuewei2 小时前
我用 AI 辅助开发了一个发型 App,然后打包成了 APK
android·人工智能·ai编程
程序课代表2 小时前
Android源码分析挖掘(二) fork大师zygote进程
android·zygote
帅次2 小时前
Android 16(API Level 36)Activity 启动流程源码级解析
android·framework·源码解析·activity启动流程·android 16
chian-ocean2 小时前
Microi吾码:从零到服装ERP:低代码打造企业级系统的实战之旅
android·低代码·rxjava
故渊at4 小时前
第十五板块:Android 系统调试与逆向工程 | 第三十五篇:ART 虚拟机内部机制与 OAT 文件格式
android·虚拟机·art·机器码·oat文件格式