Подтвердить что ты не робот

Нет статического метода zzUr() в Firebase, когда я пытаюсь использовать Analytics с уведомлениями

Я начинаю использовать Firebase Cloud Messaging.

У меня есть только примерный код руководства для использования уведомлений и аналитики. Если я не устанавливаю уведомления Google Analytics, это нормально, но когда я добавляю в gradle Analytics, я получаю эту ошибку при попытке отправить уведомление:

java.lang.NoSuchMethodError: Нет статического метода zzUr() Landroid/content/Intent; в классе Lcom/google/firebase/iid/FirebaseInstanceIdInternalReceiver; или его суперклассы (объявление "com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" появляется в /data/app/com.myapp.newapp-2/base.apk) в com.google.firebase.messaging.FirebaseMessagingService.zzz( Неизвестный источник)                                                                               at com.google.firebase.iid.zzb.onStartCommand(Неизвестный источник)                                                                               at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3316)                                                                               at android.app.ActivityThread.access $2200 (ActivityThread.java:177)                                                                               at android.app.ActivityThread $H.handleMessage(ActivityThread.java:1547)                                                                               на android.os.Handler.dispatchMessage(Handler.java:102)                                                                               на android.os.Looper.loop(Looper.java:145)                                                                               at android.app.ActivityThread.main(ActivityThread.java:5951)                                                                               в java.lang.reflect.Method.invoke(собственный метод)                                                                               в java.lang.reflect.Method.invoke(Method.java:372)                                                                               at com.android.internal.os.ZygoteInit $MethodAndArgsCaller.run(ZygoteInit.java:1400)                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

У меня есть gradle:

compile 'com.google.firebase:firebase-messaging:9.0.2'
compile 'com.google.firebase:firebase-core:9.2.0'

My MyFirebaseMessagingService:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    // TODO(developer): Handle FCM messages here.
    // If the application is in the foreground handle both data and notification messages here.
    // Also if you intend on generating your own notifications as a result of a received FCM
    // message, here is where that should be initiated. See sendNotification method below.
    Log.d(TAG, "From: " + remoteMessage.getFrom());
    Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());

    sendNotification(remoteMessage.getNotification().getBody());
}

private void sendNotification(String messageBody) {
    Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setContentText(messageBody)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 })
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}

Любая помощь будет оценена!

4b9b3361

Ответ 1

попробуйте следующее:

добавить

compile 'com.google.firebase:firebase-analytics:9.2.0'

и измените это:

compile 'com.google.firebase:firebase-messaging:9.0.2'

до ЭТОГО (такая же версия для всех)

compile 'com.google.firebase:firebase-messaging:9.2.0'

Если это не сработает, поместите все версии firebase в 9.0.2 или 9.0.0

Ответ 2

У меня была такая же проблема, как и другие, я сказал, что использовал ту же версию для всех библиотек firebase, , но это не сработало:

compile 'com.google.firebase:firebase-core:9.6.0'
compile 'com.google.firebase:firebase-messaging:9.6.0'

Я обнаружил, что я должен использовать ту же версию для play-services:

compile 'com.google.android.gms:play-services-analytics:9.6.0'
compile 'com.google.android.gms:play-services-base:9.6.0'
compile 'com.google.android.gms:play-services-gcm:9.6.0'

Ответ 3

Использование библиотек Firebase или Google Play в разных версиях не поддерживается. Все библиотеки дополняются друг другом, поэтому имена внутренних методов/классов совпадают между разными библиотеками. Когда вы используете библиотеки из разных версий, скорее всего, вы увидите отсутствующие классы и методы (как в этом случае). Смешивание библиотек из разных версий также не проверяется. Даже если вам удастся успешно запустить приложение, его очень вероятные вещи не будут работать так, как было запланировано.

Пожалуйста, всегда используйте библиотеки из той же версии выпуска.

Ответ 4

сохранить ту же самую версию всех firebase ввести описание изображения здесь инструменты, которые вы используют...

Ответ 5

Попробуйте изменить Версии Firebase в файле build.gradle. Он работает со мной!

Версии должны быть одинаковыми:

compile 'com.google.firebase:firebase-analytics:9.2.0'
compile 'com.google.firebase:firebase-messaging:9.2.0'
compile 'com.google.firebase:firebase-core:9.2.0'

Ответ 6

Для меня это работает. Я изменил версии.

compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'

Ответ 7

(Людям, которые надеются на разрешение, ссылаясь на приведенные выше ответы с последними Play-сервисами и библиотеками Firebase)

Начиная с версии 15 всех сервисов Play и библиотек Firebase, номера версий соответствуют семантической схеме управления версиями.

Каждой зависимости Maven, совпадающей с com.google.android.gms: play-services- * и com.google.firebase: firebase- * , больше не требуется иметь одинаковый номер версии для корректной работы во время сборки и во время выполнения ,

Более подробное объяснение смотрите здесь: анонс новой версии SDK

Надеюсь, это поможет людям, использующим последние версии SDK.

Также для тех, кто еще не перешел на AndroidX и пытается обновить базовый SDK сервисов Firebase и Play до последней версии 17.0.0, см. Ниже: Замечания к выпуску за июнь 17,2019

Теперь, чтобы вы знали, что я сделал, чтобы исправить мою проблему, нужно было иметь зависимости следующим образом:

Приложение не работает со следующими библиотеками:

implementation 'com.google.firebase:firebase-core:16.0.9'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
implementation 'com.google.firebase:firebase-analytics:16.5.0'

Приложение работало со следующим:

implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.android.gms:play-services-analytics:16.0.8'

implementation 'com.google.android.gms:play-services-ads:17.2.1'

implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'com.google.firebase:firebase-messaging:17.3.3'
implementation 'com.google.firebase:firebase-analytics:16.4.0'

В общем, я опустил версию firebase- для обмена сообщениями вместе с аналитикой, и это сработало как шарм...