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

添加com.google.gms.google-services插件后遇StackOverflowError错误求助

解决添加Google Services插件时的StackOverflowError问题

我之前也踩过这个坑!当按照Firebase官方指南把apply plugin: 'com.google.gms.google-services'加到build.gradle底部时出现栈溢出,本质是Gradle插件版本不兼容或者插件应用顺序/第三方插件冲突触发了内部的无限递归调用。下面是我亲测有效的解决办法:

1. 严格匹配AGP和Google Services插件版本

Android Gradle Plugin(AGP)和Google Services插件的版本必须对应,不匹配很容易引发这类奇怪的循环依赖问题:

  • AGP 7.x 对应 Google Services 4.3.10+
  • AGP 8.x 对应 Google Services 4.4.0+

修改根目录的build.gradle文件,确保版本匹配:

// 项目根目录 build.gradle
buildscript {
    dependencies {
        // 你的AGP版本,比如7.4.2
        classpath 'com.android.tools.build:gradle:7.4.2'
        // 对应版本的Google Services插件
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

2. 确保Google Services插件是最后一个应用的

模块级build.gradle里,com.google.gms.google-services必须放在所有其他插件的最后,避免和其他插件的配置逻辑冲突:

// app模块的build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
// 其他你用到的插件都放在上面
apply plugin: 'com.google.gms.google-services' // 最后一个应用

3. 清理Gradle缓存并重启

缓存损坏也可能导致这类异常,直接清理后重新同步:

  • 打开Android Studio,点击顶部菜单栏 File -> Invalidate Caches...,选择Invalidate and Restart
  • 或者在终端执行命令强制刷新依赖:
    # macOS/Linux
    ./gradlew clean build --refresh-dependencies
    
    # Windows
    gradlew.bat clean build --refresh-dependencies
    

4. 排查自定义插件/脚本冲突

如果你的项目有自定义Gradle插件或者自定义脚本,可能在操作DomainObjectCollection时触发了无限递归。可以暂时禁用这些自定义逻辑,重新同步项目,如果错误消失,再逐步排查具体是哪部分代码导致的冲突。

错误原因补充

你看到的StackOverflowError是因为Gradle内部的DefaultDomainObjectCollection在isEmpty()和iterator()方法之间出现了无限递归调用,通常是Google Services插件和其他插件、或者Gradle版本不兼容,导致配置逻辑互相触发循环调用。

内容的提问来源于stack exchange,提问作者OÄD

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:31:38