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'
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.
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 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:
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:
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
Comentários muito úteis
Resolvi atualizando
platforms/android/build.gradle
Antes
Depois de:
Testado em [email protected]