Cordova-plugin-firebase: Erro desde a atualização do Firebase em 20 de março. Você definiria a versão SDK do Firebase?

Criado em 22 mar. 2018  ·  21Comentários  ·  Fonte: arnesson/cordova-plugin-firebase

Desde: https://firebase.google.com/support/releases 20 de março.

Erro

AndroidRuntime: java.lang.NoSuchMethodError: Nenhum método estático zza (Ljava / lang / Object; Ljava / lang / Object;) Ljava / lang / Object; na classe Lcom / google / android / gms / common / internal / zzbq; ou suas superclasses (declaração de 'com.google.android.gms.common.internal.zzbq'

Comentários muito úteis

Resolvi atualizando platforms/android/build.gradle
Antes

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

Depois de:

allprojects {
    repositories {
        //start here
        configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                def requested = details.requested
                if (requested.group == 'com.google.android.gms') {
                    details.useVersion '11.8.0'
                }
                if (requested.group == 'com.google.firebase') {
                    details.useVersion '11.8.0'
                }
            }
        }
        //end
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

Testado em [email protected]

Todos 21 comentários

este é um problema crítico.

Olá, tenho outro erro devido à mesma atualização do Firebase. Quando eu digito:

cordova build android

no console, recebo esta saída:

FALHA NA CONSTRUÇÃO

Tempo total: 4.529 segundos
FALHA: a compilação falhou com uma exceção.

  • O que deu errado:
    A execução falhou para a tarefa ': processDebugResources'.
    > Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license' `

Tenho procurado a resposta na web, mas as soluções que encontrei ( solução1 , solução2 , solução3 ) não funcionam para mim .

O erro parece ser devido à atualização do

Espero que esse problema crítico possa ser resolvido instalando o plug-in novamente.

há uma correção temporária para isso, force os serviços e as versões do Firebase para 11.8.0.

como:
coloque isso dentro dotag de config.xml com o conteúdo:

<hook src="fixFirebasePlugin.js" type="before_build" />

crie o arquivo JS na raiz do seu projeto:

module.exports = function(context) {
    var fs = require('fs');
    var path = require('path');

    var rootdir = context.opts.projectRoot;

    var platformDir = 'platforms/android';
        //change the path to your external gradle file
    var srcFile = path.join(rootdir, 'src/android/build-extras.gradle');
    var destFile = path.join(rootdir, platformDir, 'build-extras.gradle');

    console.log("copying "+srcFile+" to "+destFile);
    fs.createReadStream(srcFile).pipe(fs.createWriteStream(destFile));
}

crie dentro da pasta src um alimentador android e crie dentro dele um arquivo chamado build-extras.gradle com o conteúdo:

configurations.all {
   resolutionStrategy {
       force "com.google.android.gms:play-services-ads:11.8.0"
       force "com.google.android.gms:play-services-base:11.8.0"
       force "com.google.android.gms:play-services-gcm:11.8.0"
       force "com.google.android.gms:play-services-analytics:11.8.0"
       force "com.google.android.gms:play-services-location:11.8.0"
       force "com.google.android.gms:play-services-basement:11.8.0"
       force "com.google.android.gms:play-services-tagmanager:11.8.0"
       force 'com.google.firebase:firebase-core:11.8.0'
       force 'com.google.firebase:firebase-crash:11.8.0'
       force 'com.google.firebase:firebase-auth:11.8.0'
       force 'com.google.firebase:firebase-common:11.8.0'
       force 'com.google.firebase:firebase-config:11.8.0'
       force 'com.google.firebase:firebase-messaging:11.8.0'
   }
}

remova e adicione novamente a plataforma (testado em 6.3.0), execute um android build de cordova e está consertado.

depois disso, execute / construa --prod, o que você quiser.

@tryadelion , tentei sua solução exatamente como você mencionou, mas recebi o mesmo erro no console :(

você removeu a plataforma, readded como

Sim, fiz tudo (config.xml, fixFirebasePlugin.js, build-extras.gradle, platform [email protected]), mas cada comando run ou build que executo produz a mesma saída:

firebase-build-failed

Meu projeto não é iônico, não sei se isso seria importante para essa questão.

você tentou algum "hotfix" anterior para isso? como alterar manualmente as versões no XML do plugin? Tive que remover e reler porque baguncei seus arquivos. funcionou até agora em 3 projetos diferentes, porém todos iônicos, mas o sistema de gancho é o mesmo que é alimentado por cordova.

Antes disso, eu só alterei /platforms/android/project.properties e /platforms/android/build.gradle, mas depois removi e readicionei o plug-in (primeiro) e a plataforma [email protected]. (depois de).

Não sei qual pode ser o motivo da falha, mas acho que meu projeto ainda tem as duas versões: 12.0 e 11.8.0 porque no console vejo o seguinte:

firebase-build-failed-2

Não sei onde pode ser especificada a versão 12.0.0.

remova os módulos do nó, remova as plataformas / android, remova todos os plug-ins / plug-ins usando serviços, NPM i, leia todos os plug-ins que você removeu, adicione a plataforma android e tente novamente. isso é o que eu faria.

Ok, vou tentar reinstalar todos os componentes que tenho. Muito obrigado pela ajuda !!

@tryadelion Obrigado por compartilhar. Eu estava prestes a fazer um fork do cordova-plugin-firebase e forçar as versões. Enfim, implementei sua solução.

Estamos trabalhando com [email protected], que também está funcionando.

Finalmente resolvo o problema modificando o arquivo /platforms/android/build.gradle desta forma:

allprojects {

    repositories {
    // Temp fix for com.google.android.gms.license
            // Added from here
            configurations.all {
                resolutionStrategy {

                    // Put your gms packages here with 11.8.0 attached
                    force "com.google.android.gms:play-services-analytics:11.8.0"
                    force "com.google.android.gms:play-services-auth:11.8.0"
                    force "com.google.android.gms:play-services-gcm:11.8.0"
                    force "com.google.android.gms:play-services-location:11.8.0"
                }
            }
            // until here

        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

(Solução lida em https://github.com/facebook/react-native/issues/18479)

Obrigado novamente!

Para Ionic v1.1.0 e cordova-plugin-firebase v0.1.25 este gancho resolveu meu problema:

//before_build/010_add_gradle_extras.js

#!/usr/bin/env node

var fs = require('fs');
var path = require('path');

var rootdir = process.argv[2];
var platformDir = 'platforms/android';

var srcfile = path.join(rootdir, 'build-extras.gradle');
var destfile = path.join(rootdir, platformDir, 'build-extras.gradle');
var destdir = path.dirname(destfile);

if (fs.existsSync(srcfile) && fs.existsSync(destdir)) {
  fs.createReadStream(srcfile).pipe(fs.createWriteStream(destfile));
  process.stdout.write('Hook: build-extras.gradle added');
} 
//build-extras.gradle

configurations.all {
   resolutionStrategy {
       force "com.google.android.gms:play-services-ads:11.8.0"
       force "com.google.android.gms:play-services-base:11.8.0"
       force "com.google.android.gms:play-services-gcm:11.8.0"
       force "com.google.android.gms:play-services-analytics:11.8.0"
       force "com.google.android.gms:play-services-location:11.8.0"
       force "com.google.android.gms:play-services-basement:11.8.0"
       force "com.google.android.gms:play-services-tagmanager:11.8.0"
       force 'com.google.firebase:firebase-core:11.8.0'
       force 'com.google.firebase:firebase-crash:11.8.0'
       force 'com.google.firebase:firebase-auth:11.8.0'
       force 'com.google.firebase:firebase-common:11.8.0'
       force 'com.google.firebase:firebase-config:11.8.0'
       force 'com.google.firebase:firebase-messaging:11.8.0'
   }
}

Remover e adicionar uma nova plataforma Android também foi um fator importante.

@tryadelion , alguma ideia de por que recebo esse erro quando tento sua abordagem?

A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_debugApkCopy'.
   > Could not find com.google.gms:google-services:11.8.0.
     Required by:
         project :

Eu fiz o que o jotefer disse e faz a construção funcionar. No entanto, a configuração remota parou de funcionar. Qualquer ideia?

Mergulhando no problema de que fetch não está funcionando, descobri que é por causa da seguinte exceção que é lançada ao chamar fetch:

Causado por: java.lang.ClassNotFoundException: não encontrou a classe "android.support.v4.util.ArraySet" no caminho: DexPathList

Qualquer ideia?

@remisture Tive esse problema quando outro arquivo do Gradle ainda fazia referência a 12.X, tente a limpeza de compilação.

Resolvi atualizando platforms/android/build.gradle
Antes

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

Depois de:

allprojects {
    repositories {
        //start here
        configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                def requested = details.requested
                if (requested.group == 'com.google.android.gms') {
                    details.useVersion '11.8.0'
                }
                if (requested.group == 'com.google.firebase') {
                    details.useVersion '11.8.0'
                }
            }
        }
        //end
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

Testado em [email protected]

Abaixo está todo o meu build.gradle. Também tem uma parte útil no final para mudar o SDK de compilação para todos os projetos

buildscript {
    repositories {
        jcenter()
        google()
        mavenLocal()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                def requested = details.requested
                if (requested.group == 'com.google.android.gms') {
                    details.useVersion '12.0.1'
                }
            }
        }
        mavenLocal()
        jcenter()
        maven {
            url "https://jitpack.io"
        }
        maven {
            url 'https://maven.google.com'
        }
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 26
                buildToolsVersion '26.0.2'
            }
        }
    }
}

isso parece ser corrigido com a instalação de cordova-android-play-services-gradle-release

@ soumak77 que funciona, obrigado

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

LKruglov picture LKruglov  ·  4Comentários

rlz picture rlz  ·  4Comentários

merbin2012 picture merbin2012  ·  4Comentários

danielpalen picture danielpalen  ·  5Comentários

michaelreiser picture michaelreiser  ·  5Comentários