Sejak : https://firebase.google.com/support/releases 20 Maret.
Kesalahan
AndroidRuntime: java.lang.NoSuchMethodError: Tidak ada metode statis zza(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; di kelas Lcom/google/android/gms/common/internal/zzbq; atau kelas supernya (deklarasi 'com.google.android.gms.common.internal.zzbq'
ini adalah masalah kritis.
Hai, saya memiliki kesalahan lain karena pembaruan firebase yang sama. Saat saya mengetik:
cordova build android
di konsol, saya mendapatkan output ini:
GAGAL BANGUNAN
Total waktu: 4,529 detik
FAILURE: Build gagal dengan pengecualian.
Saya telah mencari jawabannya melalui web tetapi solusi yang saya temukan ( solution1 , solution2 , solution3 ) tidak bekerja untuk saya .
Kesalahan tampaknya disebabkan oleh pembaruan Layanan Play . Saya tidak dapat membangun aplikasi Android saya sampai saya menghapus plugin ini.
Saya harap masalah kritis ini dapat diselesaikan untuk menginstal plugin lagi.
ada perbaikan sementara untuk ini, paksa layanan dan versi firebase ke 11.8.0.
bagaimana:
letakkan ini di dalam
<hook src="fixFirebasePlugin.js" type="before_build" />
buat file JS di root proyek Anda:
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));
}
buat di dalam folder src sebuah fodler Android dan buat di dalamnya sebuah file bernama build-extras.gradle dengan konten:
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'
}
}
hapus dan tambahkan kembali platform (diuji pada 6.3.0), lakukan android build cordova, dan sudah diperbaiki.
setelah itu, jalankan/build --prod, apa pun yang Anda inginkan.
@tryadelion , saya telah mencoba solusi Anda persis seperti yang Anda sebutkan, tetapi saya mendapatkan kesalahan yang sama di konsol :(
sudahkah Anda menghapus platform, dibaca sebagai [email protected] dan melakukan "~: cordova build Android", tanpa prod, tanpa run, tanpa ion? itulah yang melakukan trik untuk saya!
Ya, saya melakukan segalanya (config.xml, fixFirebasePlugin.js, build-extras.gradle, platform [email protected]), tetapi setiap menjalankan atau membangun perintah yang saya jalankan menghasilkan output yang sama:
Proyek saya bukan proyek ionik, saya tidak tahu apakah ini penting untuk masalah ini.
apakah Anda mencoba "perbaikan terbaru" sebelumnya untuk ini? suka mengubah versi pada XML plugin? saya harus menghapus dan membacanya karena saya mengacaukan file itu. sejauh ini telah bekerja pada 3 proyek berbeda, semuanya ionik, tetapi sistem pengaitnya sama dengan yang ditenagai oleh cordova.
Sebelumnya, saya hanya mengubah /platforms/android/project.properties dan /platforms/android/build.gradle tetapi setelah itu saya menghapus dan menambahkan kembali plugin (pertama), dan platform [email protected]. (setelah).
Saya tidak tahu apa yang bisa menjadi alasan kegagalan, tetapi saya pikir proyek saya masih memiliki kedua versi: 12.0 dan 11.8.0 karena di konsol saya melihat ini:
Saya tidak tahu di mana bisa ditentukan versi 12.0.0.
hapus node-modules, hapus platform/android, hapus setiap plugin yang menggunakan layanan di /plugins, NPM i, baca setiap plugin yang Anda hapus, tambahkan platform android, dan coba lagi. itulah yang akan saya lakukan.
Ok, saya akan mencoba menginstal ulang setiap komponen yang saya miliki. Terima kasih banyak atas bantuan Anda!!
@tryadelion Terima kasih telah berbagi. Saya akan melakukan fork cordova-plugin-firebase dan memaksa versi. Bagaimanapun, saya menerapkan solusi Anda.
Kami bekerja dengan [email protected] yang juga berfungsi.
Akhirnya saya memecahkan masalah memodifikasi file /platforms/Android/build.gradle dengan cara ini:
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"
}
}
}
(Solusi baca dari https://github.com/facebook/react-native/issues/18479)
Terima kasih lagi!
Untuk Ionic v1.1.0
dan cordova-plugin-firebase v0.1.25
kait ini menyelesaikan masalah saya:
//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'
}
}
Menghapus dan menambahkan platform android baru juga merupakan faktor kunci.
@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 :
Saya melakukan apa yang dikatakan jotefer dan itu membuat build bekerja. Namun, konfigurasi jarak jauh berhenti berfungsi. Ada ide?
Menyelam ke dalam masalah bahwa fetch tidak berfungsi, saya menemukan bahwa itu karena pengecualian berikut yang dilemparkan saat memanggil fetch:
Disebabkan oleh: java.lang.ClassNotFoundException: Tidak menemukan kelas "android.support.v4.util.ArraySet" di jalur: DexPathList
Ada ide?
@remisture saya mengalami masalah itu ketika file gradle lain masih merujuk 12.X, coba buat pembersihan.
Saya menyelesaikannya dengan memperbarui platforms/android/build.gradle
Sebelum
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
Setelah:
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"
}
}
}
Diuji di [email protected]
Di bawah ini adalah seluruh build.gradle saya. Juga memiliki sedikit berguna di akhir untuk mengubah kompilasi SDK untuk semua proyek
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'
}
}
}
}
ini tampaknya diperbaiki dengan menginstal cordova-Android-play-services-gradle-release
@ soumak77 yang berfungsi terima kasih
Komentar yang paling membantu
Saya menyelesaikannya dengan memperbarui
platforms/android/build.gradle
Sebelum
Setelah:
Diuji di [email protected]