Cordova-plugin-firebase: Fehler seit Firebase-Update am 20. März. Würden Sie die Firebase SDK-Version einstellen?

Erstellt am 22. März 2018  ·  21Kommentare  ·  Quelle: arnesson/cordova-plugin-firebase

Seit : https://firebase.google.com/support/releases 20. März.

Fehler

AndroidRuntime: java.lang.NoSuchMethodError: Keine statische Methode zza(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; in der Klasse Lcom/google/android/gms/common/internal/zzbq; oder seine Superklassen (Deklaration von 'com.google.android.gms.common.internal.zzbq'

Hilfreichster Kommentar

Ich habe es gelöst, indem ich platforms/android/build.gradle updating aktualisiert habe
Vor

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

Nach:

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

Getestet auf [email protected]

Alle 21 Kommentare

dies ist ein kritisches Thema.

Hallo, ich habe einen anderen Fehler aufgrund des gleichen Firebase-Updates. Wenn ich tippe:

cordova build android

In der Konsole bekomme ich diese Ausgabe:

ERSTELLEN FEHLGESCHLAGEN

Gesamtzeit: 4.529 Sek.
FAILURE: Build ist mit einer Ausnahme fehlgeschlagen.

  • Was schief gelaufen ist:
    Die Ausführung der Aufgabe ':processDebugResources' ist fehlgeschlagen.
    > Fehler: mehr als eine Bibliothek mit dem Paketnamen 'com.google.android.gms.license' `

Ich habe im Internet nach der Antwort gesucht, aber die gefundenen Lösungen ( Lösung2 , Lösung3 ) funktionieren bei mir nicht .

Der Fehler scheint auf das Play Services-Update zurückzuführen zu sein . Ich kann meine Android-App nicht erstellen, bis ich dieses Plugin entfernt habe.

Ich hoffe, dass dieses kritische Problem gelöst werden kann, um das Plugin erneut zu installieren.

Es gibt eine vorübergehende Lösung dafür, erzwinge die Dienste und Firebase-Versionen auf 11.8.0.

wie man:
lege das in dieTag der config.xml mit dem Inhalt:

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

Erstellen Sie die JS-Datei in Ihrem Projektstamm:

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

Erstellen Sie im src-Ordner einen Android-Fodler und erstellen Sie darin eine Datei namens build-extras.gradle mit dem Inhalt:

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

Entfernen Sie die Plattform und fügen Sie sie erneut hinzu (getestet auf 6.3.0), führen Sie einen Cordova-Build für Android durch, und es ist behoben.

danach ein run/build --prod, was immer Sie wollen.

@tryadelion , ich habe deine Lösung genau so ausprobiert, wie du es erwähnt hast, aber ich habe den gleichen Fehler in der Konsole erhalten:(

Haben Sie die Plattform entfernt, als [email protected] gelesen und ein "~: cordova build android" durchgeführt, kein Prod, kein Run, kein Ionic? das hat bei mir geholfen!

Ja, ich habe alles gemacht (config.xml, fixFirebasePlugin.js, build-extras.gradle, Plattform [email protected]), aber jeder Run- oder Build-Befehl, den ich ausführe, erzeugt die gleiche Ausgabe:

firebase-build-failed

Mein Projekt ist kein ionisches, ich weiß nicht, ob dies für dieses Problem wichtig sein könnte.

Hast du einen früheren "Hotfix" dazu versucht? wie die Versionen auf der XML des Plugins von Hand zu ändern? Ich musste es entfernen und lesen, weil ich mit seinen Dateien herumgespielt habe. Es hat bisher an 3 verschiedenen Projekten funktioniert, jedoch alle ionisch, aber das Hakensystem ist das gleiche wie bei Cordova.

Davor habe ich nur /platforms/android/project.properties und /platforms/android/build.gradle geändert, aber danach habe ich das Plugin (zuerst) und die Plattform [email protected] entfernt und wieder hinzugefügt

Ich weiß nicht, was der Grund für den Fehler sein könnte, aber ich denke, mein Projekt hat immer noch beide Versionen: 12.0 und 11.8.0, weil ich in der Konsole Folgendes sehe:

firebase-build-failed-2

Ich weiß nicht, wo die Version 12.0.0 angegeben werden könnte.

Node-Module entfernen, Plattformen/Android entfernen, alle Dienste verwendenden Plugins in /plugins entfernen, NPM i, alle Plugins gelesen, die Sie entfernt haben, Plattform-Android hinzufügen und erneut versuchen. das würde ich machen.

Ok, ich werde versuchen, alle Komponenten, die ich habe, neu zu installieren. Vielen Dank für Ihre Hilfe!!

@tryadedelion Danke fürs Teilen. Ich war im Begriff, Cordova-Plugin-Firebase zu forken und Versionen zu erzwingen. Jedenfalls habe ich deine Lösung implementiert.

Wir arbeiten mit [email protected] , das auch funktioniert.

Schließlich löse ich das Problem, indem ich die Datei /platforms/android/build.gradle auf diese Weise ändere:

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

(Lösung von https://github.com/facebook/react-native/issues/18479 gelesen)

Danke noch einmal!

Für Ionic v1.1.0 und cordova-plugin-firebase v0.1.25 dieser Hook mein Problem gelöst:

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

Das Entfernen und Hinzufügen einer neuen Android-Plattform war ebenfalls ein Schlüsselfaktor.

@tryadelion , erhalte , wenn ich deinen Ansatz versuche?

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 :

Ich habe getan, was Jotefer gesagt hat, und der Build funktioniert. Die Remote-Konfiguration funktioniert jedoch nicht mehr. Irgendeine Idee?

Als ich in das Problem eintauchte, dass fetch nicht funktioniert, fand ich heraus, dass dies an der folgenden Ausnahme liegt, die beim Aufrufen von fetch ausgelöst wird:

Verursacht durch: java.lang.ClassNotFoundException: Klasse "android.support.v4.util.ArraySet" im Pfad: DexPathList nicht gefunden

Irgendeine Idee?

@remisture Ich hatte dieses Problem, als eine andere Gradle-Datei noch auf 12.X verwies, versuchen Sie es mit der Build-Bereinigung.

Ich habe es gelöst, indem ich platforms/android/build.gradle updating aktualisiert habe
Vor

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

Nach:

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

Getestet auf [email protected]

Unten ist mein gesamtes build.gradle. Hat am Ende auch ein nützliches Bit zum Ändern des Kompilierungs-SDK für alle Projekte

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

Dies scheint durch die Installation von Cordova-android-play-services-gradle-release behoben zu sein

@soumak77 das funktioniert danke

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen