Cordova-plugin-firebase: Erreur depuis la mise à jour de firebase le 20 mars. Souhaitez-vous définir la version sdk de firebase ?

Créé le 22 mars 2018  ·  21Commentaires  ·  Source: arnesson/cordova-plugin-firebase

Depuis : https://firebase.google.com/support/releases le 20 mars.

Erreur

AndroidRuntime : java.lang.NoSuchMethodError : aucune méthode statique zza(Ljava/lang/Object ;Ljava/lang/Object ;)Ljava/lang/Object ; en classe Lcom/google/android/gms/common/internal/zzbq ; ou ses super classes (déclaration de 'com.google.android.gms.common.internal.zzbq'

Commentaire le plus utile

J'ai résolu en mettant platforms/android/build.gradle jour
Avant

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

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

Testé sur [email protected]

Tous les 21 commentaires

c'est un problème critique.

Salut, j'ai une autre erreur due à la même mise à jour de firebase. Quand je tape :

cordova build android

dans la console, j'obtiens cette sortie:

ÉCHEC DE CONSTRUCTION

Durée totale : 4,529 secondes
ÉCHEC : la génération a échoué avec une exception.

  • Qu'est ce qui ne s'est pas bien passé:
    L'exécution a échoué pour la tâche ':processDebugResources'.
    > Erreur : plusieurs bibliothèques avec le nom de package 'com.google.android.gms.license' `

J'ai cherché la réponse sur le Web mais les solutions que j'ai trouvées ( solution1 , solution2 , solution3 ) ne fonctionnent pas pour moi .

L'erreur semble être due à la mise à jour des services Play . Je ne peux pas créer mon application Android tant que je n'ai pas supprimé ce plugin.

J'espère que ce problème critique pourra être résolu pour réinstaller le plugin.

il existe une solution temporaire à cela, forcez les services et les versions de firebase à 11.8.0.

comment:
mettre ceci à l'intérieur dubalise de config.xml avec le contenu :

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

créez le fichier JS à la racine de votre projet :

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

créez dans le dossier src un fodler android et créez à l'intérieur un fichier appelé build-extras.gradle avec le contenu :

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

supprimez et réajoutez la plate-forme (testée sur 6.3.0), effectuez un android de construction cordova, et c'est corrigé.

après cela, un run/build --prod, ce que vous voulez.

@tryadelion , j'ai essayé votre solution exactement comme vous l'avez mentionné, mais j'ai eu la même erreur dans la console :(

avez-vous supprimé la plate-forme, relu en tant qu'[email protected] et effectué un "~: cordova build android", pas de prod, pas de course, pas d'ionique ? c'est ce qui a fait l'affaire pour moi !

Oui, j'ai tout fait (config.xml, fixFirebasePlugin.js, build-extras.gradle, platform [email protected]), mais chaque commande run ou build que j'exécute produit le même résultat :

firebase-build-failed

Mon projet n'est pas ionique, je ne sais pas si cela pourrait être important pour cette question.

avez-vous essayé un "correctif" antérieur à cela ? comme changer manuellement les versions sur le XML du plugin ? J'ai dû le supprimer et le lire parce que je me suis trompé avec ses fichiers. il a fonctionné jusqu'à présent sur 3 projets différents, tous ioniques cependant, mais le système de crochet est le même car il est alimenté en cordova.

Avant cela, j'ai seulement modifié /platforms/android/project.properties et /platforms/android/build.gradle mais après cela j'ai supprimé et rajouté le plugin (premier) et la plateforme [email protected]. (après).

Je ne sais pas quelle pourrait être la raison de l'échec, mais je pense que mon projet a toujours les deux versions : 12.0 et 11.8.0 car dans la console je vois ceci :

firebase-build-failed-2

Je ne sais pas où pourrait être spécifié la version 12.0.0.

supprimez les modules de nœuds, supprimez les plates-formes/android, supprimez tous les plug-ins utilisant des services dans /plugins, NPM i, lisez tous les plug-ins que vous avez supprimés, ajoutez la plate-forme Android et réessayez. c'est ce que je ferais.

Ok, je vais essayer de réinstaller tous les composants que j'ai. Merci beaucoup pour votre aide!!

@tryadelion Merci pour le partage. J'étais sur le point de forker les versions cordova-plugin-firebase et force. Quoi qu'il en soit, j'ai mis en œuvre votre solution.

Nous travaillons avec [email protected] qui fonctionne également.

Enfin je résous le problème en modifiant le fichier /platforms/android/build.gradle de cette façon :

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

(Solution lue sur https://github.com/facebook/react-native/issues/18479)

Merci encore!

Pour Ionic v1.1.0 et cordova-plugin-firebase v0.1.25 ce crochet a résolu mon problème :

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

Supprimer et ajouter une nouvelle plate-forme Android était également un facteur clé.

@tryadelion ,

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 :

J'ai fait ce que jotefer a dit et cela fait fonctionner la construction. Cependant, la configuration à distance a cessé de fonctionner. Une idée?

En plongeant dans le problème que fetch ne fonctionne pas, j'ai découvert que c'était à cause de l'exception suivante qui est levée lors de l'appel de fetch :

Causé par : java.lang.ClassNotFoundException : n'a pas trouvé la classe "android.support.v4.util.ArraySet" sur le chemin : DexPathList

Une idée?

@remisture j'ai eu ce problème lorsqu'un autre fichier gradle faisait encore référence à 12.X, essayez le nettoyage de build.

J'ai résolu en mettant platforms/android/build.gradle jour
Avant

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

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

Testé sur [email protected]

Vous trouverez ci-dessous l'intégralité de mon build.gradle. A également un peu utile à la fin pour changer le SDK de compilation pour tous les projets

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

cela semble être résolu en installant cordova-android-play-services-gradle-release

@soumak77 ça marche merci

Cette page vous a été utile?
0 / 5 - 0 notes