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'
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.
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 die
<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:
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:
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
Hilfreichster Kommentar
Ich habe es gelöst, indem ich
platforms/android/build.gradle
updating aktualisiert habeVor
Nach:
Getestet auf [email protected]