我目前正在开发一个令人兴奋的Android应用程序,以创建即时应用程序版本。
我的Android Studio现在分成几个模块:
- 业务对象模块(一个库)
- 基础特性模块
- 模块A功能模块
- 应用程序模块(一个手机/平板电脑模块)
- 即时应用程序模块
我的即时应用程序模块可以在手机/平板电脑上编译和启动,但每次都因Firebase问题而崩溃。我在logcat中收到以下消息:
I/FirebaseInitProvider: FirebaseApp初始化失败
根据文档,Firebase库与即时应用程序兼容,但我非常确定我没有将google-services.json文件移动到项目的正确位置...
这是我所做的:
我在Android Studio项目的build.gradle文件中定义了以下类路径依赖项:classpath 'com.google.gms:google-services:3.1.1'
我将google-services.json文件放入了我的模块基础目录中(因为文档要求这样做)
现在,如果我尝试将插件(apply plugin: 'com.google.gms.google-services')应用到基础模块的build.gradle文件中,我无法编译。我收到以下消息:
Error:Execution failed for task ':base:processGooglePlayProductionDebugFeatureGoogleServices'.
> No matching client found for package name 'com.mycompany.myapp.base'
实际上,在google-services.json文件中定义的包名称是应用程序使用的名称(因为根据文档,基础库不能与已安装的Android应用程序具有相同的包名称。
我还尝试将插件应用于已安装的应用程序和即时应用程序模块的build.gradle文件,并将google-services.json文件保留在基础模块中。应用程序可以编译,但我收到日志:“FirebaseApp初始化失败”。
所以我尝试将google-services.json文件移动到我的即时应用程序模块中,但仍然出现日志:“FirebaseApp初始化失败”。我还尝试强制初始化,调用FirebaseApp类的静态方法initializeApp,但日志仍然存在。
我在网上找不到实现示例。 实际上,Google Sample repository没有使用google-services.json文件。
感谢您提前的帮助!
编辑:这是我的模块依赖关系:
我的基本功能模块的依赖项:
implementation project(':businessobject')
feature project(':moduleA')
application project(':app')
我的模块A的依赖项-特性-模块:
api project(':base')
api project(':businessobject')
我的应用程序模块(一个手机/平板电脑模块)的依赖关系如下:
implementation (project(':base'))
implementation (project(':businessobject'))
implementation (project(':moduleA'))
我的即时应用模块(即即时应用模块)的依赖项:
implementation project(':base')
implementation project(':businessobject')
implementation project(':moduleA')