Cordova-plugin-firebase: 3月20日のFirebaseアップデート以降のエラー。 Firebase SDKのバージョンを設定しますか?

作成日 2018年03月22日  ·  21コメント  ·  ソース: arnesson/cordova-plugin-firebase

以降: https

エラー

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

[email protected]テスト済み

全てのコメント21件

これは重大な問題です。

こんにちは、同じFirebaseアップデートが原因で他のエラーが発生しました。 私がタイプするとき:

cordova build android

コンソールで、次の出力が表示されます。

ビルドに失敗しました

合計時間:4.529秒
失敗:ビルドは例外で失敗しました。

  • 何が悪かったのか:
    タスク ':processDebugResources'の実行に失敗しました。
    >エラー:パッケージ名が「com.google.android.gms.license」の複数のライブラリ

私はウェブを通じて答えを探していましたが、見つけた解決策solution1solution2solution3はうまくいきません

このエラーは、 Playサービスのアップデートが原因のようです。 このプラグインを削除するまで、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));
}

srcフォルダー内にandroidfodlerを作成し、その中に次の内容の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でテスト済み)、cordovaビルドandroidを実行すると、修正されます。

その後、run / build --prod、好きなように。

@tryadelion 、私はあなたが言ったとおりにあなたの解決策を試しましたが、コンソールで同じエラーが発生しました:(

プラットフォームを削除し、android @ 6.3.0として再読み込みし、「〜:cordova build android」を実行しましたか?製品も実行もイオンもありませんか? それが私にとってのトリックでした!

はい、すべて(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バージョンをどこに指定できるかわかりません。

node-modulesを削除し、platforms / androidを削除し、すべてのサービスを削除します-/ plugins、NPM iのプラグインを使用して、削除したすべてのプラグインを読み取り、プラットフォームandroidを追加して、再試行します。 それが私がすることです。

わかりました、私は持っているすべてのコンポーネントを再インストールしようとします。 手伝ってくれてありがとうございます!!

@tryadelion共有していただきありがとうございます。 私はcordova-plugin-firebaseとforceバージョンをフォークしようとしていました。 とにかく、私はあなたのソリューションを実装しました。

同様に機能している[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.0cordova-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'
   }
}

新しいAndroidプラットフォームの削除と追加も重要な要素でした。

@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 :

joteferが言ったことを実行すると、ビルドが機能します。 ただし、リモート構成が機能しなくなりました。 何か案が?

フェッチが機能しないという問題に飛び込むと、フェッチを呼び出すときにスローされる次の例外が原因であることがわかりました。

原因: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"
        }
    }
}

[email protected]テスト済み

以下は私のbuild.gradle全体です。 また、すべてのプロジェクトのコンパイル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 評価