Flutter项目在Android模拟器/真机运行失败,Chrome可正常运行
解决Flutter Android端启动依赖解析错误(Chrome正常运行)
问题核心
所有Flutter项目在Android模拟器/真机启动时失败,提示Content is not allowed in prolog错误,无法解析guava、gson等依赖,但Chrome端运行正常。这是Gradle本地缓存的依赖pom文件损坏导致的,通常由下载不完整或缓存文件被篡改引发。
解决方案
1. 清理缓存并重启
- 执行Flutter项目清理命令:
flutter clean - 删除本地Gradle缓存目录:
- Windows:删除
C:\Users\<你的用户名>\.gradle\caches文件夹 - macOS/Linux:删除
~/.gradle/caches文件夹
- Windows:删除
- (可选)在Android Studio中操作:
File > Invalidate Caches... > 选择Invalidate and Restart
2. 强制重新下载依赖
进入项目的android目录,执行对应系统的命令:
- Windows:
gradlew.bat build --refresh-dependencies - macOS/Linux:
./gradlew build --refresh-dependencies
3. 优化仓库访问(解决网络导致的下载失败)
如果网络访问mavenCentral/google仓库不稳定,可替换为国内镜像,修改项目根目录build.gradle:
buildscript { ext.kotlin_version = '1.6.10' repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } google() mavenCentral() } }
4. 验证依赖版本兼容性
Gradle 7.1.2与Kotlin 1.6.10兼容,若仍有问题,可升级Kotlin版本到1.6.21(更匹配的版本):
ext.kotlin_version = '1.6.21'
原理说明
Content is not allowed in prolog是XML文件解析错误,说明缓存的pom文件(依赖元数据)开头存在多余字符或文件损坏。清理缓存后重新下载完整的依赖文件,即可解决解析失败问题;更换仓库镜像可避免网络波动导致的依赖下载不完整。
内容的提问来源于stack exchange,提问作者sanjog regmi
相关产品推荐
相关产品推荐

