4

react-native-maps を react-native-firebase スターター アプリに追加しようとしています。react-native-maps を追加してみるまで、エラーは発生しませんでした。以下は、彼らの指示に正確に従った後のコードです。マップの依存関係を 15.0.1 に変更し、重複するプレイ サービスを削除しようとしましたが、何も修正されませんでした。どんな助けや洞察も大歓迎です!私はこれに悩まされ、1週間以上答えを探してきました。

dependencies {
    implementation project(':react-native-vector-icons')
    // react-native-google-signin
    implementation(project(':react-native-google-signin')) {
        exclude group: "com.google.android.gms"
    }
    implementation 'com.google.android.gms:play-services-auth:15.0.0'

    // react-native-fbsdk
    implementation project(':react-native-fbsdk')

    implementation(project(':react-native-firebase')) {
        transitive = false
    }

    // RNFirebase required dependencies
    implementation "com.google.firebase:firebase-core:15.0.2"
    implementation "com.google.android.gms:play-services-base:15.0.0"

    // RNFirebase optional dependencies
    implementation "com.google.firebase:firebase-auth:15.1.0"
    implementation "com.google.firebase:firebase-database:15.0.0"
    implementation "com.google.firebase:firebase-firestore:16.0.0"

    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:27.0.2"
    implementation "com.facebook.react:react-native:+"  // From node_modules

    // react-native-maps required dependencies
    implementation(project(':react-native-maps')){
        exclude group: 'com.google.android.gms', module: 'play-services-base'
        exclude group: 'com.google.android.gms', module: 'play-services-maps'
    }
    implementation 'com.google.android.gms:play-services-base:10.0.1'
    implementation 'com.google.android.gms:play-services-maps:10.0.1'
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

apply plugin: 'com.google.gms.google-services'
4

2 に答える 2

2

テスト後に更新し、適切な解決策を見つけます..

わかりましたので、私は現在、クラウド メッセージングに Firebase のみを使用しているため、私のソリューションはおそらくあなたのソリューションよりもはるかに単純です。基本的に、firebase-core を追加することから始めましたが、異なるバージョンで play-services-measurement-base が複数回要求されていることに不満を持っていました。そのため、それを firebase-core 依存関係から除外し、それを個別に追加して、要求されたバージョンを強制しました。次に、上記と同じパターンに従ったfirebase-analyticsについて不平を言いましたが、play-services-measurement-baseの最初のエラーが再び発生しました。続行するには、firebase-analytics からそれを除外する必要がありました。

次に、firebase-messaging を追加すると、前のパターンに従った firebase-iid 依存関係に対して同じエラーが発生しました。

Firebase の依存関係はもっとたくさんあるので、おそらくこのように 1 つずつ実行する必要があります。

これが私の依存関係ブロックです。

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"
    implementation project(':react-native-device-info')
    implementation project(':react-native-config')
    implementation project(':react-native-image-picker')
    implementation project(':react-native-sentry')
    implementation project(':react-native-vector-icons')
    implementation project(':react-native-maps')
    implementation project(':react-native-firebase')
    implementation "com.google.android.gms:play-services-base:${rootProject.ext.googlePlayServicesVersion}"
    implementation ("com.google.android.gms:play-services-measurement-base:15.0.4") {
        force = true
    }
    implementation ("com.google.firebase:firebase-analytics:16.0.0") {
        force = true
        exclude module: 'play-services-measurement-base'
        exclude module: 'firebase-analytics-impl'
    }
    implementation ("com.google.firebase:firebase-analytics-impl:16.0.0") {
        force = true
        exclude module: 'play-services-measurement-base'
    }
    implementation ("com.google.firebase:firebase-iid:16.0.0") {
        force = true
    }

    implementation ('com.google.firebase:firebase-core:16.0.0'){
        exclude module: 'play-services-measurement-base'
        exclude module: "firebase-analytics"
        exclude module: "firebase-analytics-impl"
    }
    implementation ('com.google.firebase:firebase-messaging:17.0.0'){
        exclude module: 'firebase-iid'
    }
}

また、こちらの Android ドキュメントに記載されているように、react-native-maps のプロジェクト全体のプロパティをセットアップして使用しますhttps://github.com/react-community/react-native-maps/blob/master/docs/installation.md#android

ああ、私のプロジェクト レベルの gradle ビルド ファイルでは、ビルドスクリプトの依存関係を更新する必要があることにも言及する必要があります。

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath 'com.google.gms:google-services:4.0.1'
    }
}

お役に立てれば!幸運を

于 2018-06-13T00:26:57.110 に答える