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

Unity集成Firebase SDK后Android Gradle构建失败求助

问题解决步骤

一、先处理基础Gradle警告

1. 替换废弃的android.enableR8配置

在Unity项目的gradle.properties文件中,把android.enableR8=true替换为:

android.enableR8.fullMode=true

Unity 2021 LTS已默认支持R8全模式,旧配置会触发废弃警告。

2. 修正minSdkVersion与targetSdkVersion倒置问题

打开Unity的Player Settings > Android > Other Settings,将Target API Level设置为不低于Minimum API Level(比如统一设为23或更高版本)。出现minSdkVersion(23) > targetSdkVersion(9)是因为targetSdk被意外设为极低版本,大概率是插件导入时覆盖了配置。

3. 匹配Android Gradle插件(AGP)与Gradle版本

Unity 2021.3.x LTS建议搭配AGP 4.2.2和Gradle 6.7.1。可以在Unity的Preferences > External Tools中选择对应Gradle版本,或者在项目的mainTemplate.gradle中指定:

dependencies {
    classpath 'com.android.tools.build:gradle:4.2.2'
    // Firebase相关classpath保持官方指定版本即可
}

二、解决重复类冲突(核心错误:launcher:checkReleaseDuplicateClasses)

1. 定位重复依赖来源

切换到项目的Temp/gradleOut目录,执行Gradle依赖分析命令:

./gradlew launcher:dependencies

搜索kotlinx-coroutines-core、androidx.core等重复类模块,排查哪些插件(包括Firebase)引入了不同版本的依赖。

2. 强制统一依赖版本

在mainTemplate.gradle的android块下方添加configurations规则,强制所有依赖使用同一兼容版本:

android {
    // 保留原有配置
}

configurations.all {
    resolutionStrategy {
        // 替换为你项目兼容的kotlinx-coroutines版本
        force 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4'
        // 统一androidx.core版本
        force 'androidx.core:core-ktx:1.7.0'
    }
}

版本号需匹配Firebase SDK要求,比如Firebase 9.0+通常适配kotlinx-coroutines 1.6.x及以上版本。

3. 排除插件中的重复依赖

如果特定插件引入了冲突依赖,在mainTemplate.gradle的对应模块下排除:

dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.7.0')
    implementation 'com.google.firebase:firebase-analytics-ktx'
    // 排除Firebase Auth中重复的androidx.core依赖
    implementation('com.google.firebase:firebase-auth-ktx') {
        exclude group: 'androidx.core', module: 'core'
    }
}

三、解决java.lang.StackOverflowError

这个错误通常由依赖冲突导致的递归解析,或Gradle堆内存不足引发:

  1. 优先解决前面的重复类冲突,多数情况下冲突解决后StackOverflowError会自动消失。
  2. 若仍出现,在gradle.properties中增大Gradle堆内存:
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

将-Xmx从默认的2048m调整为4096m或更高。

额外检查点

  • 确保Firebase SDK版本与Unity兼容:Unity 2021.3.x建议使用Firebase SDK 9.0.0+(通过Firebase Unity SDK下载器选择对应版本)。
  • 删除项目的Library、Temp目录,重新生成项目文件,避免缓存干扰。
  • 检查其他第三方插件(如广告、统计SDK)是否也引入了kotlinx或androidx依赖,这类插件是冲突高发区。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:18:17