gpt4 book ai didi

android - Android Instant 应用程序中的 FirebaseApp 初始化失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:07:03 24 4
gpt4 key购买 nike

我目前正在开发一个现有的 Android 应用程序以创建一个即时应用程序版本。

我的 Android Studio 现在分为几个模块:

  • 业务对象模块(这是一个库)
  • 基本功能模块
  • moduleA -feature- 模块
  • 应用模块(手机/平板电脑模块)
  • 即时模块(这是一个即时应用程序模块)

我的免安装应用程序模块可以在手机/平板电脑上编译和启动,但每次都会因 Firebase 问题而崩溃。我在 logcat 中收到以下消息:

I/FirebaseInitProvider: FirebaseApp initialization unsuccessful

根据documentation Firebase 库与 Instant Apps 兼容,但我很确定我没有将 google-services.json 文件移动到我项目中的正确位置...

这是我所做的:

  1. 我在 Android Studio 项目的 build.gradle 文件中定义了以下类路径依赖项:classpath 'com.google.gms:google-services:3.1.1'

  2. 我将 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 文件中定义的包名就是应用程序使用的包名(因为根据 documentation 基础库不能与已安装的 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')

我的 moduleA -feature- 模块的依赖:

api project(':base')
api project(':businessobject')

我的应用程序模块(手机/平板电脑模块)的依赖项:

implementation (project(':base'))
implementation (project(':businessobject'))
implementation (project(':moduleA'))

我的即时模块(这是一个即时应用程序模块)的依赖项:

implementation project(':base')
implementation project(':businessobject')
implementation project(':moduleA')

最佳答案

because according to the documentation the base library cannot have the same package name as the installed android app.

我认为文档有点过时了。每个“feature”模块都需要使用不同的包名称,因为这是用于生成 R 类 名称的名称。据我所知,您没有理由不能让“base”功能使用与应用程序本身相同的包名称。

google-services”插件似乎需要更新才能让“feature”插件使用 应用程序 ID 而不是 AndroidManifest.xml 中指定的名称(稍后将被覆盖以与应用程序 ID 相同)。

tl;dr---将“base”的包名称更改为“com.mycompany.myapp”应该可以正常工作。

关于android - Android Instant 应用程序中的 FirebaseApp 初始化失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46666474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com