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

升级GMS/Firebase至15.x版本导致Gradle构建崩溃求助

解决升级GMS/Firebase 15.+时app:transformClassesWithDesugarForDebug的异常问题

我之前升级Firebase到15.x版本时也碰到过完全一样的崩溃!这个异常本质是Desugar工具在处理Java 8默认方法时的兼容性bug,通常和Android Gradle Plugin(AGP)版本、Desugar依赖或者第三方库冲突有关。下面是我亲测有效的解决方案:

1. 升级Android Gradle Plugin到兼容版本

Firebase 15.+系列需要配合至少AGP 3.1.0以上版本使用,建议直接升级到当时的稳定版(比如3.2.1),修改项目根目录的build.gradle:

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        // 同步Firebase插件版本,比如搭配com.google.gms:google-services:4.2.0
    }
}

2. 配置指定版本的Desugar核心库

旧版本的Desugar工具存在处理默认方法的bug,手动指定更新的desugar_jdk_libs依赖可以解决这个问题。在app模块的build.gradle里添加:

android {
    compileOptions {
        coreLibraryDesugaringEnabled true
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    dependencies {
        coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
    }
}

3. 排查并修复依赖冲突

异常堆栈里提到了org.objectweb.asm.ClassReader,很可能是项目中存在多个版本的ASM库导致的冲突。执行以下命令查看依赖树:

./gradlew app:dependencies

找到所有org.ow2.asm相关的依赖,然后在app模块的build.gradle里强制统一版本:

configurations.all {
    resolutionStrategy {
        force 'org.ow2.asm:asm:7.1' // 选择和当前AGP兼容的版本
    }
}

4. 清理构建缓存

有时候旧缓存会引发奇怪的兼容性问题,执行以下命令清理后重新构建:

./gradlew clean
rm -rf .gradle/ build/

补充说明

这个问题的根源是Firebase 15.x引入了更多Java 8特性,而旧版Desugar在扫描类文件的默认方法时,会触发Guava的参数校验失败。通过升级AGP和Desugar库,就能修复这个底层的处理逻辑bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:42:06