Flutter构建Android应用报Kotlin POM解析Content is not allowed in prolog错误
问题原因
报错核心是Content is not allowed in prologXML解析错误,说明Gradle拉取Kotlin 1.6.10相关依赖时,下载到的POM文件不是合法XML格式。你的app层级build.gradle是Flutter初始化生成的默认配置,本身没有错误,问题基本来自两种情况:一是本地Gradle依赖缓存损坏,二是默认Maven中央仓库访问不稳定,拉取到了错误响应(比如拦截提示页、超时乱码)。
解决步骤
按顺序操作,每完成一步就执行flutter run测试构建:
- 清理损坏的本地缓存
关闭VS Code、Android Studio,找到本机Gradle缓存目录直接删除:- Windows路径:
C:\Users\你的系统用户名\.gradle\caches - Mac/Linux路径:
~/.gradle/caches
该目录删除后不会影响系统功能,后续构建时Gradle会自动重新拉取需要的依赖。
- Windows路径:
- 配置国内Maven镜像解决访问不稳定问题
打开项目中android目录下的根级build.gradle文件(注意不是你贴出的app目录下的文件),修改repositories配置,优先走国内镜像源,参考配置如下:buildscript { ext.kotlin_version = '1.6.10' repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } 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/central' } google() mavenCentral() } } - 执行清理重建命令
在项目根目录打开终端,依次执行以下命令:flutter clean flutter pub get flutter run
额外排查项
如果以上操作后仍然报错:
- 检查系统代理状态:如果开了代理/VPN,确认Gradle配置了对应代理参数;如果没开代理,把系统里残留的代理设置完全关闭后重试,代理返回的错误响应是POM解析失败的常见诱因。
- 不要随意修改
ext.kotlin_version的版本号,新手直接保持Flutter模板默认的版本即可,版本不匹配也会触发依赖拉取异常。
内容的提问来源于stack exchange,提问作者Taba Sualeh
相关产品推荐
相关产品推荐

