FirebaseCloudMessaging:FirebaseInstanceId后台同步失败 - SERVICE_NOT_AVAILABLE

时间:2016-07-26 07:10:55

标签: android firebase firebase-cloud-messaging

我已在Android中使用Firebase云消息传递(FCM)API进行推送通知。当我实现那个时间完美的工作,但现在它找不到谷歌游戏的服务。

错误是:

  

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"
    }

}

感谢您花时间阅读本文。

13 个答案:

答案 0 :(得分:14)

  1. 验证互联网连接
  2. 验证Android SDK工具(工具 - > Android - > SDK管理器 - > SDK工具标签)是否具有Google Play服务'最新版本,如果没有安装包。 然后,如果您正在使用模拟器,请停止模拟器并再次启动它。它可以正常工作

答案 1 :(得分:12)

您可以查看

  1. 检查您的互联网连接,无需代理并打开互联网连接
  2. 将您的google-service.json替换为新的public class Test1{ static void convert(File inputFile, File outputFile) { try { FileOutputStream fos = new FileOutputStream(outputFile); // Get the workbook object for XLSX file XSSFWorkbook wBook = new XSSFWorkbook( new FileInputStream(inputFile)); // Get first sheet from the workbook XSSFSheet sheet = wBook.getSheetAt(0); Row row; Cell cell; // Iterate through each rows from first sheet Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { row = rowIterator.next(); // For each row, iterate through each columns Iterator<Cell> cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { cell = cellIterator.next(); switch (cell.getCellType()) { case Cell.CELL_TYPE_BOOLEAN: data.append(cell.getBooleanCellValue() + ","); break; case Cell.CELL_TYPE_NUMERIC: data.append(cell.getNumericCellValue() + ","); break; case Cell.CELL_TYPE_STRING: data.append(cell.getStringCellValue() + ","); break; case Cell.CELL_TYPE_BLANK: data.append("" + ","); break; default: data.append(cell + ","); } } } fos.write(data.toString().getBytes()); fos.close(); } catch (Exception ioe) { ioe.printStackTrace(); } } // testing the application public static void main(String[] args) { // reading file from desktop File inputFile = new File("D:\\Test.xlsx"); // writing excel data to csv File outputFile = new File("D:\\Test1.csv"); convert(inputFile, outputFile); } } ,您可以在firebaseconsol
  3. 中获取此内容
  4. 请检查您的设备是否有谷歌播放服务,它是否正常工作,如果没有谷歌播放服务,firebase无法正常工作
  5. 检查 - FireBaseInstanceId service does not get registered

答案 2 :(得分:6)

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

可能这些信息对您有所帮助!

答案 3 :(得分:5)

服务需要绑定在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差不多。

答案 4 :(得分:2)

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

答案 5 :(得分:1)

最简单的解决方案是删除.Droid目录下的bin和obj文件夹 通过这种方式,你每次都有一个干净的开始。

答案 6 :(得分:1)

就我而言,我刚从Android Studio偏好设置中删除了即时游戏

答案 7 :(得分:1)

以我为例-我重新启动了PC并可以正常工作。

我不是专家,所以我可能用我的方法涵盖了其中提到的小费

答案 8 :(得分:1)

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

答案 9 :(得分:1)

我也遇到了同样的问题,只需通过构建中的“清理项目”选项即可解决。希望它可以帮助这里的任何人。

答案 10 :(得分:1)

我只是有这个问题。就我而言,仅当我停止仿真器,将其关闭并再次打开时,它才起作用。我没有做任何其他更改。

答案 11 :(得分:0)

就我而言

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

MyProjectRootDir/google-services.json

move to --> 

MyProjectRootDir/app/google-services.json

答案 12 :(得分:0)

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