Я пытаюсь интегрировать FCM в одно из моих приложений для Android.Я следовал инструкциям согласно документации, и мое приложение POC работает нормально.Когда я выполняю те же шаги в своем последнем приложении, которое является мультидексным приложением, оно не работает.Я получаю исключение о недопустимом состоянии с сообщением о том, что приложение Firebase по умолчанию не было инициализировано.Имя моего пакета (определено в файле манифеста) и идентификатор приложения (как определено в файле gradle) различаются, и в файле google-services.json он принял идентификатор приложения в разделе информации о клиенте.Я пробовал поиск в сети, прошел несколько обсуждений переполнения стека, но ни одно из предложений не сработало для меня.
Раздел из файла манифеста:
<service
android:name=".services.JBFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
Код инициализации в действии:
FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (!task.isSuccessful()) {
Log.w("", "getInstanceId failed", task.getException());
return;
}
// Get new Instance ID token
if (task.getResult() != null) {
String token = task.getResult().getToken();
// Log
String msg = getString(R.string.msg_token_fmt, token);
Log.d("", msg);
LogHelper.writeLog(null,msg);
}
}
});