Cordova-plugin-firebase: Error desde la actualización de la base de fuego el 20 de marzo. ¿Establecerías la versión sdk de firebase?

Creado en 22 mar. 2018  ·  21Comentarios  ·  Fuente: arnesson/cordova-plugin-firebase

Desde: https://firebase.google.com/support/releases 20 de marzo.

Error

AndroidRuntime: java.lang.NoSuchMethodError: Sin método estático zza (Ljava / lang / Object; Ljava / lang / Object;) Ljava / lang / Object; en la clase Lcom / google / android / gms / common / internal / zzbq; o sus superclases (declaración de 'com.google.android.gms.common.internal.zzbq'

Comentario más útil

Lo resolví actualizando platforms/android/build.gradle
Antes

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

Después:

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"
        }
    }
}

Probado en [email protected]

Todos 21 comentarios

Esto es un problema critico.

Hola, tengo otro error debido a la misma actualización de base de fuego. Cuando escribo:

cordova build android

en la consola, obtengo este resultado:

CONSTRUCCIÓN FALLIDA

Tiempo total: 4.529 segundos
FALLO: la compilación falló con una excepción.

  • Qué salió mal:
    Error en la ejecución de la tarea ': processDebugResources'.
    > Error: más de una biblioteca con el nombre de paquete 'com.google.android.gms.license' ' '

He estado buscando la respuesta a través de la web, pero las soluciones que encontré ( solución1 , solución2 , solución3 ) no me funcionan .

El error parece deberse a la actualización de Play Services . No puedo crear mi aplicación de Android hasta que haya eliminado este complemento.

Espero que este problema crítico pueda resolverse para instalar el complemento nuevamente.

hay una solución temporal para esto, fuerce los servicios y las versiones de base de fuego a 11.8.0.

cómo:
poner esto dentro deletiqueta de config.xml con el contenido:

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

crea el archivo JS en la raíz de tu proyecto:

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));
}

cree dentro de la carpeta src un fodler de Android y cree dentro de él un archivo llamado build-extras.gradle con el contenido:

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'
   }
}

eliminar y volver a agregar la plataforma (probado en 6.3.0), realizar una compilación de Android Cordova, y se corrigió.

después de eso, un run / build --prod, lo que quieras.

@tryadelion , probé tu solución exactamente como mencionaste, pero obtuve el mismo error en la consola :(

¿Ha eliminado la plataforma, leído como [email protected] y ha realizado un "~: cordova build android", sin prod, sin ejecución, sin ionic? ¡Eso es lo que me sirvió!

Sí, hice todo (config.xml, fixFirebasePlugin.js, build-extras.gradle, platform [email protected]), pero cada comando de ejecución o compilación que ejecuto produce el mismo resultado:

firebase-build-failed

Mi proyecto no es iónico, no sé si esto podría ser importante para este problema.

¿Intentó alguna "revisión" anterior a esto? como cambiar manualmente las versiones en el XML del complemento? Tuve que quitarlo y leerlo porque me metí con sus archivos. ha funcionado hasta ahora en 3 proyectos diferentes, aunque todos iónicos, pero el sistema de enganche es el mismo que el de Córdoba.

Antes de eso, solo cambié /platforms/android/project.properties y /platforms/android/build.gradle, pero luego eliminé y volví a agregar el complemento (primero) y la plataforma [email protected]. (después).

No sé cuál podría ser la razón del error, pero creo que mi proyecto todavía tiene ambas versiones: 12.0 y 11.8.0 porque en la consola veo esto:

firebase-build-failed-2

No sé dónde se podría especificar la versión 12.0.0.

elimine módulos de nodo, elimine plataformas / android, elimine todos los complementos que utilizan servicios en / complementos, NPM i, lea todos los complementos que eliminó, agregue la plataforma Android e intente nuevamente. eso es lo que yo haría.

Ok, intentaré reinstalar todos los componentes que tengo. ¡¡Muchas gracias por su ayuda!!

@tryadelion Gracias por compartir. Estaba a punto de bifurcar cordova-plugin-firebase y forzar versiones. De todos modos, implementé su solución.

Estamos trabajando con [email protected] que también está funcionando.

Finalmente resuelvo el problema modificando el archivo /platforms/android/build.gradle de esta manera:

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"
        }
    }
}

(Solución lea de https://github.com/facebook/react-native/issues/18479)

¡Gracias de nuevo!

Para Ionic v1.1.0 y cordova-plugin-firebase v0.1.25 este gancho resolvió mi 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'
   }
}

Eliminar y agregar una nueva plataforma Android también fue un factor clave.

@tryadelion , ¿alguna idea de por qué recibo este error cuando intento tu enfoque?

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 :

Hice lo que dijo jotefer y hace que la construcción funcione. Sin embargo, la configuración remota dejó de funcionar. ¿Alguna idea?

Al profundizar en el problema de que la recuperación no funciona, descubrí que se debe a la siguiente excepción que se lanza al llamar a la recuperación:

Causado por: java.lang.ClassNotFoundException: no se encontró la clase "android.support.v4.util.ArraySet" en la ruta: DexPathList

¿Alguna idea?

@remisture tuve ese problema cuando otro archivo gradle todavía hacía referencia a 12.X, intente limpiar la compilación.

Lo resolví actualizando platforms/android/build.gradle
Antes

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

Después:

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"
        }
    }
}

Probado en [email protected]

A continuación se muestra todo mi build.gradle. También tiene un poco útil al final para cambiar el sdk de compilación para todos los proyectos.

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'
            }
        }
    }
}

esto parece arreglarse instalando cordova-android-play-services-gradle-release

@ soumak77 que funciona gracias

¿Fue útil esta página
0 / 5 - 0 calificaciones