【问题标题】:FirebaseCloudMessaging : FirebaseInstanceId background sync failed - SERVICE_NOT_AVAILABLEFirebaseCloudMessaging:FirebaseInstanceId 后台同步失败 - SERVICE_NOT_AVAILABLE
【发布时间】:2023-04-11 03:24:01
【问题描述】:

我在 Android 中使用 Firebase Cloud Messaging(FCM) API 进行推送通知。当我实现那个时候完美的工作,但现在它找不到google play的服务。

错误是:

FirebaseInstanceId:后台同步失败:SERVICE_NOT_AVAILABLE,

请帮我解决一下。我在 gradle 文件中使用了以下依赖项。

dependencies {
    compile files('libs/ksoap2-android-assembly-3.4.0-jar.jar')
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile files('libs/gson-2.2.4.jar')
    compile files('libs/activation.jar')
    compile files('libs/mail.jar')
    compile files('libs/additionnal.jar')
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.facebook.android:facebook-android-sdk:4.14.0'
    compile 'com.google.firebase:firebase-messaging:9.0.2'

    compile('com.google.android.gms:play-services:9.0.2') {
        exclude group: "play-services-wallet"
        exclude module: "play-services-wallet"
        exclude group: "play-services-ads"
        exclude module: "play-services-ads"
    }

}

感谢您花时间阅读本文。

【问题讨论】:

  • 你的代码在哪里?您是否在 Firebase 服务器上正确配置了项目?
  • 是的,我将我的项目从 google 控制台导入到 firebase 控制台,还生成了 json 文件并添加了我的项目。
  • 哪一行代码出错?请发布您的 java 代码和 logcat。
  • 在后台服务在 FCM 库中失败,所以我只收到此错误。 FirebaseInstanceId:后台同步失败:SERVICE_NOT_AVAILABLE,
  • 您能否将您的 AndroidManifest 添加到问题中?此外,您使用 com.google.android.gms:play-services 可能会导致问题,因为您将同时使用 firebase-messaging 和 play-services-gcm。 FCM 和 GCM 不能在同一个项目中使用。

标签: android firebase firebase-cloud-messaging


【解决方案1】:
  1. 验证互联网连接
  2. 验证 Android SDK 工具(工具 -> Android -> SDK 管理器 -> SDK 工具选项卡)是否具有“Google Play 服务”最新版本,如果未安装该软件包。 然后如果你正在使用模拟器,请停止模拟器并重新启动它。它可以工作

【讨论】:

    【解决方案2】:

    您可以查看

    1. 在没有代理的情况下检查您的互联网连接并打开互联网连接
    2. 用新的 google-service.json 替换你可以在 firebaseconsol 中得到它
    3. 请检查您的设备中是否有 google play 服务,它是否可以正常工作,如果没有 google play 服务,firebase 将无法工作

    检查-FireBaseInstanceId service does not get registered

    【讨论】:

      【解决方案3】:

      经过长时间的努力,我找到了答案,如果 google play 服务没有运行,那么FirebaseInstanceId background sync failed - SERVICE_NOT_AVAILABLE 日志打印,所以你可以检查你的 google play 服务是否正常运行?

      也许这些信息对你有帮助!

      【讨论】:

        【解决方案4】:

        服务需要绑定在Manifest.xml

            <!-- Firebase InstanceId Service -->
            <service
                android:name="eu.acme.service.FireBaseInstanceIdService"
                android:exported="false" >
                <intent-filter>
                    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
                </intent-filter>
            </service>
        

        然后可以访问一个公开的方法(其他名称被混淆 = 不可靠):

        package eu.acme.service;
        
        import com.google.firebase.iid.FirebaseInstanceId;
        import com.google.firebase.iid.FirebaseInstanceIdService;
        
        public class FireBaseInstanceIdService extends FirebaseInstanceIdService {
        
            @Override
            @android.support.annotation.WorkerThread
            public void onTokenRefresh() {
        
                /* obtain the current InstanceId token: */
                String token = FirebaseInstanceId.getInstance().getToken();
            }
        }
        

        一个人只能通过不激怒它来解决它,例如。通过在知道不存在活动网络的情况下不添加任何 AuthState 侦听器,正如 here 所解释的那样 - 看起来,否则无法捕获从库中抛出的异常 - 这可以忽略,因为它只是抱怨,没有网络连接。

        com.google.android.gms.iidcom.google.firebase.iid 差不多。

        【讨论】:

        • 哪些因素会导致这种情况?我不确定究竟是什么原因造成的。我确实有网络,但仍然抛出此异常。我需要不断重启设备直到它正常工作。
        【解决方案5】:

        我不得不禁用我的 VPN - 希望这对某人有所帮助!

        【讨论】:

          【解决方案6】:

          我刚遇到这个问题。就我而言,只有在我停止模拟器、关闭它并再次打开时才有效。我没有进行任何其他更改。

          【讨论】:

            【解决方案7】:

            最简单的解决方法是删除.Droid目录下的bin和obj文件夹。
            这样,您每次都有一个干净的开始。

            【讨论】:

              【解决方案8】:

              在我的情况下 - 我重新启动了我的电脑并且它工作了。

              我不是专家,所以我可能已经通过我的方法涵盖了提到的提示之一

              【讨论】:

                【解决方案9】:

                连接您的手机与不同的 wifi 连接与不同的服务提供商。看起来很奇怪,但你可以试试!

                【讨论】:

                  【解决方案10】:

                  就我而言,我只是从 Android Studio 偏好设置中删除了即时运行

                  【讨论】:

                    【解决方案11】:

                    我也有同样的问题,通过构建下的 Clean Project 选项解决。希望它可以帮助这里的任何人。

                    【讨论】:

                      【解决方案12】:

                      您需要更新您的播放服务并确保您的互联网连接良好。

                      【讨论】:

                        【解决方案13】:

                        就我而言

                        我已在项目根目录中添加了google-services.json 文件,我将其移至 app 文件夹,问题已得到解决。

                        MyProjectRootDir/google-services.json
                        
                        move to --> 
                        
                        MyProjectRootDir/app/google-services.json
                        

                        【讨论】:

                          猜你喜欢
                          • 2023-03-11
                          • 1970-01-01
                          • 2017-05-17
                          • 2017-01-06
                          • 1970-01-01
                          • 2019-08-20
                          • 2018-10-01
                          • 1970-01-01
                          • 2019-02-08
                          相关资源
                          最近更新 更多