Flutter在Android Studio中运行Android app时依赖解析卡顿求助
解决Android Studio运行Flutter Android应用卡在「Resolving dependencies」的问题
这种卡在依赖解析的情况我碰到过好几次,大概率和依赖下载、缓存或者配置有关,给你梳理几个常见的排查方向:
1. 后台正在下载依赖(最常见情况)
有时候界面看起来一动不动,实则Gradle在后台悄悄下载缺失的资源——比如Android SDK组件、Flutter插件依赖、第三方库的aar/jar包。你可以点击Android Studio底部状态栏的「Gradle Console」图标,打开日志面板看看:如果有类似Downloading https://xxx的进度提示,那就是在下载,耐心等就行,尤其是第一次运行或换了网络环境时,大文件下载确实会慢一些。
2. Gradle镜像源访问不稳定(国内用户高发)
默认的Gradle仓库在国外,国内网络访问容易超时或卡住。你可以修改配置换成国内镜像:
- 打开项目根目录下的
android/build.gradle,找到repositories块,替换成阿里云镜像:
repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } }
- 同时检查用户目录下的
.gradle/init.gradle(没有就新建),添加全局镜像配置:
allprojects{ repositories { def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public' def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter' def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google' def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL." remove repo } if (url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL." remove repo } if (url.startsWith('https://dl.google.com/dl/android/maven2/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL." remove repo } if (url.startsWith('https://plugins.gradle.org/m2/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL." remove repo } } } maven { url ALIYUN_REPOSITORY_URL url ALIYUN_JCENTER_URL url ALIYUN_GOOGLE_URL url ALIYUN_GRADLE_PLUGIN_URL } } }
3. Gradle缓存损坏
缓存的依赖文件损坏会导致解析卡住,试试清理缓存:
- 点击顶部菜单栏「File」→「Invalidate Caches...」,勾选「Invalidate and Restart」,重启后会重新生成缓存。
- 手动删除项目根目录下的
.gradle文件夹和android/.gradle文件夹,再重新运行项目。
4. Android SDK组件不全
虽然flutter doctor显示正常,但可能某些细分SDK组件没装全。打开「SDK Manager」(Tools→SDK Manager),检查:
- 「SDK Platforms」里对应Android版本的组件是否全部勾选安装
- 「SDK Tools」里的「Android SDK Build-Tools」「Android SDK Command-line Tools」是否为最新版本
5. 项目依赖冲突
如果pubspec.yaml里引入了第三方库,可能存在版本冲突导致Gradle无法解析:
- 执行
flutter pub upgrade更新所有依赖到最新兼容版本 - 查看
flutter pub get的输出日志,有没有冲突提示,针对性调整依赖版本
6. Gradle版本不兼容
项目使用的Gradle版本和Android Studio的Gradle插件版本不匹配也会出问题。打开android/gradle/wrapper/gradle-wrapper.properties,检查distributionUrl对应的Gradle版本,比如插件版本7.4.2建议搭配Gradle 7.5以上,你可以换成稳定的最新版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
内容的提问来源于stack exchange,提问作者Shahbaz Ali
相关产品推荐
相关产品推荐

