Solucionado (ver solução)
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'