You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter安卓构建失败::app:checkDebugAarMetadata任务执行出错

Flutter安卓构建失败:无法解析AndroidX依赖POM文件,提示"Content is not allowed in prolog"

我的Flutter项目在Web端运行正常,但安卓设备构建时失败。执行Gradle的assembleDebug任务时,报错Execution failed for task ':app:checkDebugAarMetadata',具体表现为无法解析多个AndroidX依赖的POM文件,提示“Content is not allowed in prolog”。已尝试升级gradle wrapper.properties中的Gradle版本、将compileSdkVersion和targetSdkVersion修改为31,问题仍未解决。


相关配置文件

app/build.gradle

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 31
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "com.example.ccounterr"
        minSdkVersion flutter.minSdkVersion
        targetSdkVersion 31
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    buildTypes {
        release {
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

android/build.gradle

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

rootProject.allprojects {
    configurations.all {
        resolutionStrategy {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'androidx.core') {
                    details.useVersion "1.0.2"
                }
                if (details.requested.group == 'androidx.lifecycle') {
                    details.useVersion "2.0.0"
                }
                if (details.requested.group == 'androidx.versionedparcelable') {
                    details.useVersion "1.0.0"
                }
                if (details.requested.group == 'androidx.fragment') {
                    details.useVersion "1.0.0"
                }
                if (details.requested.group == 'androidx.appcompat') {
                    details.useVersion "1.0.1"
                }
                if (details.requested.group == 'androidx.annotation') {
                    details.useVersion "1.0.2"
                }
            }
        }
    }
}

错误日志

Launching lib\main.dart on RMX1831 in debug mode...
Running Gradle task 'assembleDebug'...
[Fatal Error] tracing-1.0.0.pom:2:1: Content is not allowed in prolog.
[Fatal Error] window-java-1.0.0-beta04.pom:2:1: Content is not allowed in prolog.
[Fatal Error] loader-1.0.0.pom:2:1: Content is not allowed in prolog.
[Fatal Error] customview-1.0.0.pom:2:1: Content is not allowed in prolog.
[Fatal Error] viewpager-1.0.0.pom:2:1: Content is not allowed in prolog.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Could not resolve androidx.tracing:tracing:1.0.0.
     Required by:
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e
      > Could not resolve androidx.tracing:tracing:1.0.0.
         > Could not parse POM https://dl.google.com/dl/android/maven2/androidx/tracing/tracing/1.0.0/tracing-1.0.0.pom
            > Content is not allowed in prolog.
   > Could not resolve androidx.window:window-java:1.0.0-beta04.
     Required by:
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e
      > Could not resolve androidx.window:window-java:1.0.0-beta04.
         > Could not parse POM https://dl.google.com/dl/android/maven2/androidx/window/window-java/1.0.0-beta04/window-java-1.0.0-beta04.pom
            > Content is not allowed in prolog.
   > Could not resolve androidx.loader:loader:1.0.0.
     Required by:
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e > androidx.fragment:fragment:1.0.0
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e > androidx.fragment:fragment:1.0.0 > androidx.legacy:legacy-support-core-utils:1.0.0
      > Could not resolve androidx.loader:loader:1.0.0.
         > Could not parse POM https://dl.google.com/dl/android/maven2/androidx/loader/loader/1.0.0/loader-1.0.0.pom
            > Content is not allowed in prolog.
   > Could not resolve androidx.customview:customview:1.0.0.
     Required by:
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e > androidx.fragment:fragment:1.0.0 > androidx.legacy:legacy-support-core-ui:1.0.0
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e > androidx.fragment:fragment:1.0.0 > androidx.legacy:legacy-support-core-ui:1.0.0 > androidx.coordinatorlayout:coordinatorlayout:1.0.0
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e > androidx.fragment:fragment:1.0.0 > androidx.legacy:legacy-support-core-ui:1.0.0 > androidx.drawerlayout:drawerlayout:1.0.0
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e > androidx.fragment:fragment:1.0.0 > androidx.legacy:legacy-support-core-ui:1.0.0 > androidx.slidingpanelayout:slidingpanelayout:1.0.0
      > Could not resolve androidx.customview:customview:1.0.0.
         > Could not parse POM https://dl.google.com/dl/android/maven2/androidx/customview/customview/1.0.0/customview-1.0.0.pom
            > Content is not allowed in prolog.
   > Could not resolve androidx.viewpager:viewpager:1.0.0.
     Required by:
         project :app > io.flutter:flutter_embedding_debug:1.0.0-1837b5be5f0f1376a1ccf383950e83a80177fb4e > androidx.fragment:fragment:1.0.0 > androidx.legacy:legacy-support-core-ui:1.0.0
      > Could not resolve androidx.viewpager:viewpager:1.0.0.
         > Could not parse POM https://dl.google.com/dl/android/maven2/androidx/viewpager/viewpager/1.0.0/viewpager-1.0.0.pom
            > Content is not allowed in prolog.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 26s
Exception: Gradle task assembleDebug failed with exit code 1

已尝试的解决方法

  • 升级gradle wrapper.properties中的Gradle版本
  • 将compileSdkVersion修改为31
  • 将targetSdkVersion修改为31

可行解决方案

  1. 清理Gradle缓存

    • 执行命令:gradlew clean build --refresh-dependencies(Windows)或./gradlew clean build --refresh-dependencies(Mac/Linux)
    • 手动删除本地Gradle缓存目录:Windows路径为C:\Users\<你的用户名>\.gradle\caches,Mac/Linux路径为~/.gradle/caches
  2. 移除强制指定的AndroidX版本约束
    在android/build.gradle中删除以下代码块,让Gradle自动适配兼容的依赖版本:

    rootProject.allprojects {
        configurations.all {
            resolutionStrategy {
                resolutionStrategy.eachDependency { details ->
                    if (details.requested.group == 'androidx.core') {
                        details.useVersion "1.0.2"
                    }
                    if (details.requested.group == 'androidx.lifecycle') {
                        details.useVersion "2.0.0"
                    }
                    if (details.requested.group == 'androidx.versionedparcelable') {
                        details.useVersion "1.0.0"
                    }
                    if (details.requested.group == 'androidx.fragment') {
                        details.useVersion "1.0.0"
                    }
                    if (details.requested.group == 'androidx.appcompat') {
                        details.useVersion "1.0.1"
                    }
                    if (details.requested.group == 'androidx.annotation') {
                        details.useVersion "1.0.2"
                    }
                }
            }
        }
    }
    

    这段代码强制锁定了老旧AndroidX版本,与Flutter嵌入依赖的版本冲突,导致POM解析异常。

  3. 优化仓库访问配置
    如果网络无法正常访问Google Maven仓库,可在android/build.gradle的仓库配置中添加国内镜像:

    buildscript {
        ext.kotlin_version = '1.7.10'
        repositories {
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            google()
            mavenCentral()
        }
        // 其他内容不变
    }
    
    allprojects {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            google()
            mavenCentral()
        }
    }
    
  4. 更新Flutter SDK和依赖
    执行flutter upgrade更新到最新稳定版Flutter,再执行flutter pub get重新拉取项目依赖。


内容的提问来源于stack exchange,提问作者anam zaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 06:05:54