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

Flutter 3.13.9升级后Android应用构建失败,如何解决?

问题描述

Flutter版本信息

Flutter 3.13.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision d211f42860 (7 days ago) • 2023-10-25 13:42:25 -0700
Engine • revision 0545f8705d
Tools • Dart 3.1.5 • DevTools 2.25.0

升级后构建错误

ERROR:D8: com.android.tools.r8.kotlin.H
ERROR:D8: com.android.tools.r8.kotlin.H

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDexDebug'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Failed to transform firebase-analytics-ktx-21.5.0.aar (com.google.firebase:firebase-analytics-ktx:21.5.0) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=19, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: C:\Users\Vitaliy\.gradle\caches\transforms-3\41525bdf5de3383fe28a17aaa9610b1b\transformed\jetified-firebase-analytics-ktx-21.5.0-runtime.jar.
         > Error while dexing.
   > Failed to transform play-services-measurement-api-21.5.0.aar (com.google.android.gms:play-services-measurement-api:21.5.0) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=19, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: C:\Users\Vitaliy\.gradle\caches\transforms-3\ce1b8deb6ac5da9f5a47c5868d41ba4c\transformed\jetified-play-services-measurement-api-21.5.0-runtime.jar.
         > Error while dexing.

* 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 2s

已尝试清理缓存、删除.gradle文件夹,问题仍未解决,求可行的构建方案。

解决方案

以下是几个针对性的解决方法,按顺序尝试:

1. 升级Firebase相关依赖版本

Flutter 3.13.x对Firebase依赖的兼容性要求更高,旧版本的firebase-analytics-ktx(21.5.0)可能存在适配问题。在项目的android/build.gradle中添加强制依赖版本的配置:

allprojects {
    repositories {
        // 保留原有仓库配置
    }
    configurations.all {
        resolutionStrategy.force 'com.google.firebase:firebase-analytics-ktx:21.6.0'
        resolutionStrategy.force 'com.google.android.gms:play-services-measurement-api:21.6.0'
    }
}

同步Gradle后重新构建项目。

2. 调整D8/R8编译配置

在android/app/build.gradle的android块中补充或修改以下配置,优化Dex编译逻辑:

android {
    // 保留原有配置
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    packagingOptions {
        exclude 'META-INF/*.kotlin_module'
    }
    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }
}

3. 启用MultiDex支持

若应用方法数超过Android单Dex限制,也可能触发此类错误。在android/app/build.gradle中开启MultiDex:

android {
    defaultConfig {
        // 保留原有配置
        multiDexEnabled true
    }
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
}

如果项目没有自定义Application类,修改AndroidManifest.xml的application标签:

<application
    android:name="androidx.multidex.MultiDexApplication"
    // 保留其他属性
>

4. 临时降级Flutter版本

如果以上方法均无效,可临时降级到之前能正常构建的Flutter版本:

flutter downgrade <之前的版本号>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:49:54