2016-07-26 2 views
3

У меня есть API Firebase Cloud Messaging (FCM) для push-уведомления в Android. Когда я реализовал эту прекрасную работу, но теперь она не может найти Сервис google play.Android FirebaseCouldMessaging: FirebaseInstanceId фоновая синхронизация завершилась неудачно - SERVICE_NOT_AVAILABLE

ошибка:

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

} 

Спасибо, что нашли время, чтобы прочитать это.

+0

Где мой код? Вы правильно настроили проект на сервере Firebase? – Talha

+0

yes Я импортировал свой проект с консоли Google в консоль firebase, а также сгенерировал json-файл и добавил свой проект. –

+0

В какой строке кода появляется ошибка? Пожалуйста, разместите свой Java-код и logcat. – Talha

ответ

3

После долгой борьбы я нашел ответ, если служба воспроизведения Google не работает, тогда FirebaseInstanceId background sync failed - SERVICE_NOT_AVAILABLE распечатайте журнал, чтобы вы могли проверить, работает ли ваша служба игры Google правильно или нет?

Возможно, эта информация вам полезна!

1

служба должна быть завязана в 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 Listener, зная, что нет активной сети, как объяснено here - как кажется, иначе нельзя поймать исключение, выведенное из библиотеки, которое можно игнорировать, поскольку оно просто просто жалуется, что есть нет сетевого подключения.

com.google.android.gms.iid и com.google.firebase.iid примерно одинаковые.

2

Вы можете проверить

  1. Проверьте подключение к Интернету без каких-либо прокси-сервера и открытого Интернета подключить
  2. Заменить google-service.json с новым вы можете получить это в firebaseconsol
  3. Пожалуйста, проверьте ваше устройство Google играть в нем, и это работает или нет, firebase не работает без службы игры в Google

Check - FireBaseInstanceId service does not get registered

4
  1. Проверьте подключение к Интернету
  2. Проверьте, если Android инструментов SDK (Tools -> Android -> менеджер SDK -> вкладка SDK инструментов) имеют 'Google Play услуги' последнюю версию, и если не установить пакет. Затем, если вы используете эмулятор, пожалуйста, остановить эмулятор и запустить его again.It работы
0

простого решения, чтобы удалить бункер и OBJ папки в директории .Droid.
Таким образом, у вас есть чистый старт каждый раз.