Unity Firebase加载失败:“无法从应用程序资源中读取Firebase选项。”

3
我的Android构建未能初始化Firebase Messaging,出现以下错误:
I/Unity   (30673): InitializationException: Failed to read Firebase options from the app's resources.  You'll need to either at least set App ID and API key or include google-services.json your app's resources.
I/Unity   (30673):   at Firebase.FirebaseApp.CreateAndTrack (Firebase.CreateDelegate createDelegate) [0x00000] in <filename unknown>:0
I/Unity   (30673):   at Firebase.FirebaseApp.Create () [0x00000] in <filename unknown>:0
I/Unity   (30673):   at Firebase.FirebaseApp.get_DefaultInstance () [0x00000] in <filename unknown>:0
I/Unity   (30673):   at Firebase.Messaging.FirebaseMessaging+Listener..ctor () [0x00000] in <filename unknown>:0
I/Unity   (30673):   at Firebase.Messaging.FirebaseMessaging+Listener.Create () [0x00000] in <filename unknown>:0
I/Unity   (30673):   at Firebase.Messaging.FirebaseMessaging..cctor () [0x00000] in <filename unknown>:0
I/Unity   (30673): Rethrow as TypeInitializationException: An exception was thrown by the type initializer for Firebase.Messaging.FirebaseMessaging

我已经下载并将google-services.json文件放置在项目根目录中,生成了一个google-services.xml文件,位于Plugins/Android/Firebase/res/values,看起来包含所有必需的值。

如果运行Google Play Games包会有任何影响。 Unity 5.3和Firebase 4.1。过去曾经成功运行,但现在重新安装了软件包后无法工作。


嗨Firebase,我是开发者。你是否使用我们的示例代码重现了这个问题?我很惊讶会出现这种情况,因为XML文件已经生成,这表明它应该被Unity的Android构建所识别,除非你删除了Plugins/Android/Firebase文件夹中的样板项目。 - stewartmiles
1个回答

0
已解决 - 在Unity中初始化时,我遇到了相同的错误。这里的关键区别是,我使用自己的gradle进行构建,并且Plugins/Android/Firebase/res/values.xml内部的值未与最终的values.xml合并。
解决方案: 编辑我的gradle以将Firebase/res文件夹也包含在res文件夹中-在android块下的mainTemplate.gradle中添加以下行
    sourceSets {
        main {
                res.srcDirs += 'Firebase/res'
        }
}

调试步骤: 1. 确认Plugins文件夹中的google-services.xml文件是否存在 2. 构建后,确认Unity项目中Temp/文件夹中的值 3. 发现Temp/Firebase文件夹中的值不在主生成的values.xml文件中 4. 在mainTemplate.gradle文件中添加一行以包含Firebase/res文件夹

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