Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
13
respostas

O Aplicativo fecha quando eu envio a mensagem pelo Firebase

Mensagem de erro no Logcat

07-10 17:34:34.675 27236-27257/com.example.jonh.projetofirebase E/AndroidRuntime: FATAL EXCEPTION: Firebase-ProjetoMessagingService
    Process: com.example.jonh.projetofirebase, PID: 27236
    java.lang.AbstractMethodError: abstract method "void com.google.firebase.iid.zzb.zzd(android.content.Intent)"
        at com.google.firebase.iid.zzc.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at com.google.android.gms.common.util.concurrent.zza.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:761)
13 respostas

Oi Flávia, tudo bem?

Apenas com esse erro é difícil de identificar com precisão, portanto, me manda algumas informações para eu analisar. A primeira delas é o conteúdo do arquivo build.gradle do módulo app, nele eu quero ver as versões das dependências que estão sendo utilizadas.

Um outro detalhe que preciso saber, é se a stacktracer indica exatamente a partir de qual parte do código apresenta o erro. Por exemplo, se é quando chama o onMessageReceived() ou em outro lugar.

Se preferir, pode me mandar o projeto via GitHub que dou uma olhada também :)

[]s

Abaixo está o código do build.gradle do módulo App. Quanto ao stack tracer acredito que seja devido a implementação da classe extendida do FirebaseMessagingService. Não a implementei particularmente, pois segui os passos da aula e lá ela não é implementada.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.jonh.projetofirebase"
        minSdkVersion 22
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.google.firebase:firebase-messaging:12.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-core:15.0.0'
    implementation 'com.google.firebase:firebase-auth:15.0.0'
    implementation 'com.google.android.gms:play-services-auth:15.0.1'
    implementation 'com.google.android.gms:play-services-identity:15.0.1'
}
apply plugin: 'com.google.gms.google-services'

Veja que você está usando algumas libs do Firebase com versões diferentes, uma está 12.0.1 e as outras 15.0.0. Tenta usar a versão 15.0.0 no firebase-messasing e vê se funciona.

Aconteceu o seguinte erro ao mudar a versão e sincronizar.

Resolve dependencies of :app:debugRuntimeClasspath 35s 144ms

org.gradle.internal.event.ListenerNotificationException: Failed to notify dependency resolution listener.

Esse erro está bem genérico... Consegue me mandar o projeto? Dessa forma eu posso investigar os problemas que estão acontecendo :)

Qual o seu endereço de email?

alex.vieira@caelum.com.br não conseguiu via GitHub? Caso não, depois dá uma olhada no nosso curso de Git, pois é uma abordagem muito comum entre alunos e instrutores para compartilhar código devido a facilidade em baixar e comentar onde foi apresentado o problema.

Compartilhei a pouco com você o meu projeto pelo GitHub com o usuário: jonilsonanjos. Por favor, aceite-o.

Acabei de testar e resolvi o problema da dependência, os arquivos de build ficaram da seguinte maneira:

projeto:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath 'com.google.gms:google-services:3.2.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        mavenLocal()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

módulo app:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.jonh.projetofirebase"
        minSdkVersion 22
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-messaging:15.0.0'
    implementation 'com.google.firebase:firebase-core:15.0.0'
    implementation 'com.google.firebase:firebase-auth:15.0.0'
    implementation 'com.google.android.gms:play-services-auth:15.0.1'
    implementation 'com.google.android.gms:play-services-identity:15.0.1'
}

apply plugin: 'com.google.gms.google-services'

Eu testei a notificação via console do Firebase e tudo funcionou como esperado, a única mudança que fiz foi adicionar o arquivo google-services.json do projeto que foi feito no curso... Faça essas modificações e veja se tudo funciona como esperado.

Bom dia!

Fiz as alterações que você informou no builder.gradle do module e do app, mas ainda estou com problema. Agora o projeto não está conseguindo iniciar. Abaixo está o traceback da tentativa de iniciação.

Ademais, atualizei o projeto no Github.

:app:transformClassesWithDexBuilderForDebug    31ms
:app:transformDexArchiveWithExternalLibsDexMergerForDebug    258ms
Execute transform    251ms
:app:buildInfoGeneratorDebug    1ms
null    
Program type already present: com.google.android.gms.internal.measurement.zzabn

Estranho ainda apresentar o problema... Já fez o processo de clean project e Rebuild Project? Caso já tenha feito, tente utilizar a técnica para sincronizar os arquivos do Gradle, você pode executá-la usando o atalho Ctrl + Shift + A e buscar por Sync Project With Gradle Files. Se não funcionar, utilize novamente o Ctrl + Shift + A e busque pela opção Invalidate Caches / Restart... para o Android Studio limpar todo o cache do projeto e fazer todo o build/indexação de arquivos novamente.

Poxa amigo, ainda não está dando certo.

Tem como você acessar remotamente a minha máquina para que possamos constatar e verificar mutuamente o problema?

solução!

Oi Flávia, infelizmente não damos suporte via acesso remoto, porém, eu testei outras configurações em outros computadores também e parece que está funcionando, modifica os seguintes trechos e veja se funciona:

No build.gradle do projeto:

com.google.gms:google-services:3.2.1

No build.gradle do módulo app:

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.firebase:firebase-messaging:15.0.2'
implementation 'com.google.firebase:firebase-core:15.0.2'
implementation 'com.google.firebase:firebase-auth:15.1.0'
implementation 'com.google.android.gms:play-services-auth:15.0.1'
implementation 'com.google.android.gms:play-services-identity:15.0.1'