Firebase分析在即时应用程序或普通应用程序中不起作用

7
我有一个应用程序,它是模块化的,支持即时应用程序。
应用程序模块:
- app - instantapp - base - main - detail - search
我尝试通过添加以下内容来添加Firebase:
- classpath 'com.google.gms:google-services:3.1.1' → 添加到项目级别build.gradle - api "com.google.firebase:firebase-core:${versions.firebase}" → 添加到Base模块中 - apply plugin: 'com.google.gms.google-services' → 添加到Base Module的底部 - google-services.json → 添加到基础模块文件夹中
当我运行非即时应用程序时,我收到以下错误:
I/FirebaseInitProvider: FirebaseApp初始化失败 E/FA: GoogleService初始化失败,状态:10,缺少名称为google_app_id的字符串资源中的google app id值。 I/FA: 应用测量正在启动,版本:11720 I/FA: 要启用调试日志记录,请运行:adb shell setprop log.tag.FA VERBOSE I/FA: 要启用更快的调试模式事件日志记录,请运行:           adb shell setprop debug.firebase.analytics.app com.punpuf.chacaraselazer.app E/FA: 缺少google_app_id。 Firebase Analytics已禁用。请参见https://goo(...) E/FA: 上传不可能。应用测量已禁用 I/FA: 未找到标签管理器,因此不会使用
当我运行即时应用程序时,我收到以下错误:
V/FA: 取消作业。 JobID:1799580119 E/FirebaseApp:Firebase API初始化失败。(...)Caused by:java.lang.NullPointerException:尝试在空对象引用上调用接口方法'void android.app.job.IJobScheduler.cancel(int)' I/FirebaseInitProvider:FirebaseApp初始化成功
如果我添加以下行:“FirebaseAnalytics.getInstance(this)”,它不仅会收到之前的错误,而且还会崩溃:
E/AndroidRuntime:致命异常:主进程:com.punpuf.chacaraselazer.app,PID:11273 java.lang.RuntimeException:无法启动活动ComponentInfo {(...)}:java.lang.NullPointerException:尝试在空对象引用上调用接口方法'void android.app.job.IJobScheduler.cancel(int)'
所以我的问题是如何使Firebase Analytics正常工作,并且不会在我的应用程序的即时和非即时版本中崩溃。
尽管此问题与 FirebaseApp initialization unsuccessful in Android Instant apps 有些相似,但我的问题并不包含相同类型的错误。
更新: 我创建了一个新的 Firebase 项目,并更新了我的 google-services.json,但仍然无法工作。
下面是我的 gradle 文件:
- 项目: https://gist.github.com/Punpuf/8582fa3610a1c3dea13627e1207a6064 - 应用: https://gist.github.com/Punpuf/2104ffe0c90927cb79944860a7cb6c46 - Instant App: https://gist.github.com/Punpuf/233d96e91293a2a14e8fdf50092edd2d - Base: https://gist.github.com/Punpuf/e1646f67d8a6094773c390d2df209eae - 主要: https://gist.github.com/Punpuf/f8bdd8789b11d274afdb1c51f490ed25 - 细节: https://gist.github.com/Punpuf/0a4f87b4fb512557ffe6cd110ce667de - 搜索: https://gist.github.com/Punpuf/455e28b38baad23294dda6c9592586a2 我还尝试用 Firebase Messaging 替换 Firebase Analytics 依赖项,但仍然收到了 "FirebaseApp initialization unsuccessful" 错误。

Firebase Analytics与Android Instant Apps结合的示例可在GitHub上找到:https://github.com/googlesamples/android-instant-apps/tree/master/analytics - Ben Weiss
@Marcola,如果您仍然有疑虑,能否分享一个示例项目以更清楚地理解您的问题? - Prags
我无法确定您正在使用哪个Firebase版本,它是否已更新到11.6.2?https://firebase.google.com/support/releases - TWL
此外,这也可能是由于过时的“Google Play即时应用服务”引起的问题。卸载它,然后运行即时应用程序以确保安装最新版本。 - TWL
1
如果仍然无法解决问题,而fede1608的解决方案也无效,那么我建议您将项目提交到Google的https://issuetracker.google.com/issues/new?component=316045&template=1018787。他们会检查一下。 (另外,请确保在此处提供已提交错误的链接) - TWL
显示剩余3条评论
1个回答

8

我的问题和你一样,我是将google-services.json添加到基础模块和应用模块,并在build.gradle文件中应用了谷歌服务插件来解决的。


1
谢谢!对于其他遇到此问题的人,您可能还需要编辑应用程序模块 google-services.json 文件中“client_info”内的“package_name”,以匹配您的应用程序模块的包名。 - Marcola Carr
@fede1608 我按照相同的步骤操作,但是在GoogleServicesPlugin.getAllDependencies处出现了StackOverflowError错误。错误日志:https://justpaste.it/1hhfv 有什么建议吗? - Ajit
@Ajit 抱歉,我不知道,看起来可能有一个循环,也许你把两个构建 gradle 相互链接了? - fede1608
1
@fede1608 当将插件'com.google.gms.google-services'应用于基本模块时,会出现此问题。 - Ajit
@Ajit,你能分享一下两个build.gradle文件吗? - fede1608
这个解决方案是可行的,但我觉得在即时应用程序中复制Firebase配置很奇怪。我更喜欢只有一个google-services.json文件的解决方案。 - Sven Jacobs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接