Cordova-plugin-firebase: خطأ منذ تحديث Firebase في 20 مارس. هل يمكنك تعيين إصدار Firebase sdk؟

تم إنشاؤها على ٢٢ مارس ٢٠١٨  ·  21تعليقات  ·  مصدر: arnesson/cordova-plugin-firebase

منذ: https://firebase.google.com/support/releases 20 مارس.

خطأ

AndroidRuntime: java.lang.NoSuchMethodError: لا توجد طريقة ثابتة zza (Ljava / lang / Object ؛ Ljava / lang / Object ؛) Ljava / lang / Object ؛ في الفصل Lcom / google / android / gms / common / internal / zzbq ؛ أو فئاتها المميزة (إعلان "com.google.android.gms.common.internal.zzbq"

التعليق الأكثر فائدة

لقد قمت بالحل عن طريق تحديث platforms/android/build.gradle
قبل

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

بعد، بعدما:

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

تم الاختبار على

ال 21 كومينتر

هذه مسألة حرجة.

مرحبًا ، لدي خطأ آخر بسبب نفس تحديث Firebase. عندما أكتب:

cordova build android

في وحدة التحكم ، أحصل على هذا الناتج:

فشل البناء

الوقت الإجمالي: 4.529 ثانية
فشل: فشل البناء مع استثناء.

  • ماذا حصل:
    فشل تنفيذ المهمة ': processDebugResources'.
    > خطأ: أكثر من مكتبة باسم الحزمة "com.google.android.gms.license"

لقد كنت أبحث عن الإجابة عبر الويب ولكن الحلول التي وجدتها ( الحل 1 ، الحل 2 ، الحل 3 ) لا تعمل بالنسبة لي .

يبدو أن الخطأ يرجع إلى تحديث Play Services . لا يمكنني إنشاء تطبيق android الخاص بي حتى أقوم بإزالة هذا المكون الإضافي.

آمل أن يتم حل هذه المشكلة الحرجة لتثبيت المكون الإضافي مرة أخرى.

هناك إصلاح مؤقت لهذا ، فرض الخدمات وإصدارات Firebase إلى 11.8.0.

كيف:
ضع هذا داخلعلامة config.xml بالمحتوى:

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

أنشئ ملف JS على جذر مشروعك:

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

قم بإنشاء ملف android داخل مجلد src وأنشئ بداخله ملفًا يسمى 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'
   }
}

قم بإزالة وإعادة إضافة النظام الأساسي (تم اختباره في 6.3.0) ، وقم بتنفيذ كوردوفا بناء android ، وتم إصلاحه.

بعد ذلك ، تشغيل / إنشاء - منتج ، ما تريده.

tryadelion ، لقد جربت الحل الخاص بك تمامًا كما ذكرت ، لكنني حصلت على نفس الخطأ في وحدة التحكم :(

هل قمت بإزالة المنصة ، والتي تمت قراءتها كـ

نعم ، لقد فعلت كل شيء (config.xml ، fixFirebasePlugin.js ، build-extras.gradle ، platform [email protected]) ، ولكن كل أمر تشغيل أو أمر إنشاء أقوم بتنفيذها ينتج نفس الإخراج:

firebase-build-failed

مشروعي ليس مشروعًا أيونيًا ، ولا أعرف ما إذا كان هذا قد يكون مهمًا لهذه المشكلة.

هل جربت أي "إصلاح عاجل" سابق لهذا؟ مثل تغيير الإصدارات يدويًا في XML للمكوِّن الإضافي؟ اضطررت إلى إزالته وقراءته لأنني عبثت بملفاته. لقد عملت حتى الآن في 3 مشاريع مختلفة ، جميعها أيونية ، لكن نظام الخطاف هو نفسه الذي تعمل به كوردوفا.

قبل ذلك ، قمت فقط بتغيير /platforms/android/project.properties و /platforms/android/build.gradle ولكن بعد ذلك قمت بإزالة وإعادة إضافة المكون الإضافي (أولاً) والنظام الأساسي [email protected]. (بعد، بعدما).

لا أعرف ما يمكن أن يكون سبب الفشل ، لكني أعتقد أن مشروعي لا يزال يحتوي على كلا الإصدارين: 12.0 و 11.8.0 لأنني أرى هذا في وحدة التحكم:

firebase-build-failed-2

لا أعرف أين يمكن تحديد الإصدار 12.0.0.

قم بإزالة وحدات العقدة ، وإزالة الأنظمة الأساسية / android ، وإزالة كل الخدمات باستخدام المكون الإضافي / المكونات الإضافية ، و NPM i ، واقرأ كل مكون إضافي قمت بإزالته ، وأضف النظام الأساسي android ، وحاول مرة أخرى. هذا ما سأفعل.

حسنًا ، سأحاول إعادة تثبيت كل مكون لدي. شكرا جزيلا لك على مساعدتك!!

tryadelion شكرا للمشاركة. كنت على وشك تفرع كوردوفا-البرنامج المساعد-فايربيز وإصدارات القوة. على أي حال ، لقد نفذت الحل الخاص بك.

نحن نعمل مع [email protected] الذي يعمل أيضًا.

أخيرًا ، قمت بحل المشكلة بتعديل الملف /platforms/android/build.gradle بهذه الطريقة:

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

(قراءة الحل من https://github.com/facebook/react-native/issues/18479)

شكرا لك مرة أخرى!

بالنسبة إلى Ionic v1.1.0 و cordova-plugin-firebase v0.1.25 حل هذا الخطاف مشكلتي:

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

كانت إزالة وإضافة نظام أندرويد الجديد عاملاً رئيسيًا أيضًا.

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 :

فعلت ما قاله جوتيفر وهو يجعل البناء يعمل. ومع ذلك ، توقف التكوين عن بعد عن العمل. اي فكرة؟

عند الغوص في المشكلة التي لا يعمل فيها الجلب ، اكتشفت أنها بسبب الاستثناء التالي الذي يتم طرحه عند استدعاء الجلب:

سبب: java.lang.ClassNotFoundException: لم يتم العثور على الفئة "android.support.v4.util.ArraySet" في المسار: DexPathList

اي فكرة؟

remisture لقد حدثت هذه المشكلة عندما كان ملف gradle آخر لا يزال يشير إلى 12.x ، حاول إنشاء تنظيف.

لقد قمت بالحل عن طريق تحديث platforms/android/build.gradle
قبل

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

بعد، بعدما:

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

تم الاختبار على

يوجد أدناه بنائي بالكامل. يحتوي أيضًا على جزء مفيد في النهاية لتغيير sdk المجمع لجميع المشاريع

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

يبدو أنه تم إصلاح هذا عن طريق تثبيت cordova-android-play-services-gradle-release

@ soumak77 الذي يعمل شكرا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات