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

Android Library引入Firebase依赖报错:Cannot invoke method get() on null object

解决Android Library引入Firebase依赖导致的构建空指针错误

我来帮你分析这个问题并给出解决方案——这个错误是因为com.google.gms.google-services插件的处理逻辑和Library模块的Firebase依赖配置不匹配导致的。

问题根源

google-services插件主要负责解析Firebase依赖并关联google-services.json配置,但旧版本的插件(比如你用的4.0.0)在处理仅Application模块应用插件,但Library模块引入Firebase依赖的场景时,会出现依赖解析的空指针问题。插件无法正确识别Library模块中的Firebase依赖,进而抛出Cannot invoke method get() on null object错误。

解决方案

按照以下步骤修改配置:

1. 在Library模块中也应用google-services插件

打开/module-lib/build.gradle,在apply plugin: 'com.android.library'之后添加插件应用:

apply plugin: 'com.android.library'
// 新增这一行
apply plugin: 'com.google.gms.google-services'

android {
    ...
}
dependencies{
    api "com.google.firebase:firebase-config:16.0.0"
}

2. 确保版本兼容性

你当前使用的版本组合是兼容的,这里帮你确认下官方推荐的匹配关系:

  • AGP 3.1.2 搭配 Gradle 4.7 是官方适配的组合
  • google-services:4.0.0 对应 Firebase 16.x 版本是完全匹配的

3. 确认google-services.json的位置

google-services.json只需要放在module-app的src/main目录下即可,Library模块不需要这个文件,插件会自动从Application模块继承配置信息。

验证修改

执行以下命令重新构建项目:

./gradlew clean build

为什么移到App模块就正常?

当你把Firebase依赖直接放在App模块时,google-services插件能直接处理这些依赖——因为插件本身就应用在App模块中,依赖解析的完整流程可以正常完成。而放在Library模块时,插件没有处理Library的依赖项,导致解析过程中出现空对象调用的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:33:55