React-native: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

Dibuat pada 21 Mar 2018  ·  162Komentar  ·  Sumber: facebook/react-native

Lingkungan

OS: macOS Sierra 10.12.6
Simpul: 6.10.2
Benang: 1.3.2
npm: 3.10.10
Penjaga: 4.9.0
Xcode: Tidak Ditemukan
Android Studio: 3.0 AI-171.4443003
Paket: (diinginkan => diinstal)
bereaksi: 16.2.0 => 16.2.0
reaksi-asli: 0.53.3 => 0.53.3

Langkah-langkah untuk Reproduksi

Perilaku yang Diharapkan

Perilaku Sebenarnya

Android Stale

Komentar yang paling membantu

Ini berhasil untuk saya. Sunting /android/build.gradle .(bukan /android/app/build.gradle )

Anda perlu memeriksa modul gms apa yang diperlukan untuk proyek Anda. Anda dapat menemukan modul gms yang diperlukan di setiap file build.gradle dari setiap plugin react-native yang menggunakan gms.

Dalam kasus saya, saya perlu memeriksa 4 plugin berikutnya. react-native-admob , react-native-maps , react-native-onesignal , react-native-google-sign-in . Nama modul dapat berbeda berdasarkan proyek.

atau, Anda dapat memeriksa nama modul yang diperlukan dengan menjalankan perintah gradlew app:dependencies .(jalankan di direktori android)

// This is not need to be 11.8.0. Use your required version.
def googlePlayServicesVersion = '11.8.0'

allprojects {
    repositories {
                ...
        configurations.all {
            resolutionStrategy {
                // react-native-admob
                force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion"
                // react-native-maps
                force "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
                // react-native-onesignal
                force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
                // react-native-google-sign-in
                force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
            }
        }
                ...
    }
}

Semua 162 komentar

Terima kasih telah memposting ini! Sepertinya masalah Anda mungkin kehilangan beberapa informasi yang diperlukan. Bisakah Anda menjalankan react-native info dan mengedit masalah Anda untuk menyertakan hasil ini di bawah bagian Lingkungan ?

Terima kasih atas kontribusi Anda.

sama disini.
Kemarin saya bisa membangun proyek saya, tapi hari ini pagi tiba-tiba gagal.
Saya tidak mengubah kode saya sama sekali.

Mungkin itu terkait dengan rilis baru Google Play services 12.0.0 (dirilis pada 20 Maret 2018)

hal yang sama terjadi pada saya tetapi dengan cordova, tanpa melakukan modifikasi apa pun pada kode saya

Lingkungan:
OS: macOS Sierra 10.12.6
Simpul: 6.10.2
Benang: 1.3.2
npm: 3.10.10
Penjaga: 4.9.0
Xcode: Tidak Ditemukan
Android Studio: 3.0 AI-171.4443003

Paket: (diinginkan => diinstal)
bereaksi: 16.2.0 => 16.2.0
reaksi-asli: 0.53.3 => 0.53.3

Apakah kesalahan muncul untuk modul tertentu? Di tambang saya, saya memiliki perpustakaan reaksi-asli-kamera menggunakan ini di build.gradle-nya sendiri, (di bawah Gradle Scripts di Android Studio)

dependencies {
  ....
  compile 'com.google.android.gms:play-services-vision:+'
  ....
}

Yang menyebabkannya menggunakan versi terbaru yang tidak didukung, memunculkan masalah ini.
Ubah saja baris itu menjadi compile 'com.google.android.gms:play-services-vision:11.6.0'
atau versi terbaru yang kompatibel untuk Anda.

  • Apa yang salah:
    Eksekusi gagal untuk tugas ':react-native-device-info:processReleaseResources'.
    > Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

Saya mengalami masalah yang sama. Tidak apa-apa sore tadi, tapi membangun kesalahan pagi ini.
FAILURE: Build gagal dengan pengecualian.

Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

Lingkungan saya seperti di bawah ini:
reaksi-asli-cli: 2.0.1
reaksi asli: 0.44.3
npm: 5.5.1
OS: Windows 10

Inilah yang ingin Anda cari

Ubah + menjadi 11.6.0 di node_modules/react-native-device-info/Android/build.gradle

Sebagai perbaikan sementara tentu saja

Ada masalah yang relevan yang dapat Anda rujuk.

Saya menghadapi masalah yang sama

* What went wrong:
Execution failed for task ':react-native-mauron85-background-geolocation:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'

Lingkungan:
OS: Linux 4.13
Simpul: 6.11.4
Benang: Tidak Ditemukan
npm: 3.10.10
Penjaga: Tidak Ditemukan
Kode X: T/A
Android Studio: Tidak Ditemukan

Paket: (diinginkan => diinstal)
bereaksi: 16.3.0-alpha.2 => 16.3.0-alpha.2
reaksi-asli: 0.54.2 => 0.54.2

Di sisi lain saya memiliki proyek yang sangat mirip (pada dasarnya sama) tetapi dengan react-native 0.48.4 dan dalam hal ini berfungsi dengan baik.

Saya baru saja memperbaiki dengan menambahkan baris di bawah ini di gradle.properties

googlePlayServicesVersion=11.6.0 .

kompilasi 'com.google.android. gms:play-services-vision :11.8.0'
11.8.0 baik-baik saja

Ketika saya mencoba ini:

Saya baru saja memperbaiki dengan menambahkan baris di bawah ini di gradle.properties
googlePlayServicesVersion=11.6.0 .

Saya mendapatkan:

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApk'.
   > A problem occurred configuring project ':react-native-device-info'.
      > Could not resolve all dependencies for configuration ':react-native-device-info:_debugPublishCopy'.
         > Could not find com.google.android.gms:play-services-gcm:11.6.0.
           Searched in the following locations:
           ...

Dan ketika saya mencoba ini:

kompilasi 'com.google.android. gms:play-services-vision :11.8.0'
11.8.0 baik-baik saja

Saya mendapatkan:

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
   > Could not find com.google.android.gms:play-services-vision:11.8.0.
     Searched in the following locations:
     ...

@justcarthy Ya, itu berhasil.

sumber daya ditemukan yang cocok dengan nama yang diberikan: attr ' android:keyboardNavigationCluster '. saya mendapatkan kesalahan ini

@augusto-altman Anda bisa mencoba yang ini .

Dalam kasus saya, saya berhasil menyelesaikannya dengan menyelaraskan semua versi com.google.firebase di 'platforms/Android/project.properties' ke versi yang lebih lama seperti di bawah ini:

cordova.system.library.4=com.google. firebase:firebase-core :11.+
cordova.system.library.5=com.google. firebase:firebase-messaging :11.+
cordova.system.library.6=com.google. firebase: firebase-crash :11.+
cordova.system.library.7=com.google. firebase:firebase-config :11.+
cordova.system.library.8=com.google.android. gms:play-services-location :11.+
cordova.system.library.9=com.google.android. gms:play-services-auth :11.+
cordova.system.library.10=com.google.android. gms:play-services-identity :11.+

Di atas diubah menjadi: 11.+ dari sebelumnya: +

Selain itu, semua penyertaan, misalnya (cordova-plugin-firebase/android-build.gradle) juga harus diubah seperti di atas. Ini mungkin solusi sementara sampai berhasil menemukan apa yang salah dengan rilis versi 12.0.0.

  • Apa yang salah:
    Eksekusi gagal untuk tugas ':react-native- google- signin:processReleaseResources '.

    Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

  • Mencoba:
    Jalankan dengan opsi --stacktrace untuk mendapatkan jejak tumpukan. Jalankan dengan opsi --info atau --debug untuk mendapatkan lebih banyak keluaran log.

GAGAL BANGUNAN

Saya memperbaiki kesalahan saat mengubah compile 'com.google.android.gms:play-services-auth:+' menjadi compile 'com.google.android.gms:play-services-auth:11.6.0' pada node_modules/react-native-google-signin/build.gradle

Ini bekerja untuk saya.

node_modules/react-native-device-info/Android/build.gradle:
dependensi {
kompilasi 'com.facebook. bereaksi:bereaksi-asli :+'
kompilasi 'com.google.android. gms:play-services-gcm :11.8.0' // update oleh saya pada 20180321
//kompilasi 'com.google.android. gms:play-services-gcm :+'
}

Ini berhasil untuk saya. Sunting /android/build.gradle .(bukan /android/app/build.gradle )

Anda perlu memeriksa modul gms apa yang diperlukan untuk proyek Anda. Anda dapat menemukan modul gms yang diperlukan di setiap file build.gradle dari setiap plugin react-native yang menggunakan gms.

Dalam kasus saya, saya perlu memeriksa 4 plugin berikutnya. react-native-admob , react-native-maps , react-native-onesignal , react-native-google-sign-in . Nama modul dapat berbeda berdasarkan proyek.

atau, Anda dapat memeriksa nama modul yang diperlukan dengan menjalankan perintah gradlew app:dependencies .(jalankan di direktori android)

// This is not need to be 11.8.0. Use your required version.
def googlePlayServicesVersion = '11.8.0'

allprojects {
    repositories {
                ...
        configurations.all {
            resolutionStrategy {
                // react-native-admob
                force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion"
                // react-native-maps
                force "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
                // react-native-onesignal
                force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
                // react-native-google-sign-in
                force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
            }
        }
                ...
    }
}

#PlayServicesGate

bagaimana mengatasinya? tolong tolong

@ZKeLin Saya baru saja mendapatkan semua deps com.google.firebase dan com.google.Android saya dari android/app/build.gradle :

...
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.firebase:firebase-core:11.0.0'
    compile 'com.google.firebase:firebase-crash:11.0.0'
    compile 'com.google.firebase:firebase-analytics:11.0.0'
    compile 'com.google.firebase:firebase-messaging:11.0.0'
    compile 'com.google.android.gms:play-services-base:11.0.0'
    compile 'com.google.android.gms:play-services-maps:11.0.0'
    compile 'com.google.android.gms:play-services-wallet:11.0.0'
    ...
}

dan masukkan ke android/build.gradle

allprojects {
    repositories {
        ...
        configurations.all {
            // #PlayServicesGate — March, 20 2018
            resolutionStrategy {
                force 'com.google.firebase:firebase-core:11.0.0'
                force 'com.google.firebase:firebase-crash:11.0.0'
                force 'com.google.firebase:firebase-analytics:11.0.0'
                force 'com.google.firebase:firebase-messaging:11.0.0'
                force 'com.google.android.gms:play-services-base:11.0.0'
                force 'com.google.android.gms:play-services-maps:11.0.0'
                force 'com.google.android.gms:play-services-wallet:11.0.0'
            }
        }
    }
}

Gunakan versi Anda sendiri dari android/app/build.gradle

Saya tidak dapat menginstal ...play-services-*:11.8.0 . mengapa? duo ke studio android saya terlalu tua?

Saya juga menghadapi masalah yang sama dalam pengembangan asli-reaksi.

saya hanya digunakan @isnifer dan @nopedev jawaban ..

Ini berhasil untuk saya.

Sebelum Mengedit

configurations.all {

        resolutionStrategy.eachDependency { DependencyResolveDetails details ->

            def overrideVersion = versionOverrides[details.requested.group + ":" + details.requested.name]

            if (overrideVersion != null && details.requested.version != overrideVersion) {
                println("********************************************************")
                println("Overriding dependency ${details.requested.group}:${details.requested.name} version ${details.requested.version} --> $overrideVersion")
                details.useVersion overrideVersion
                println("********************************************************")
            }
        }
    }

Setelah

configurations.all {

        resolutionStrategy{

            force "com.google.android.gms:play-services-ads: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"

            eachDependency { DependencyResolveDetails details ->

            def overrideVersion = versionOverrides[details.requested.group + ":" + details.requested.name]

            if (overrideVersion != null && details.requested.version != overrideVersion) {
                println("********************************************************")
                println("Overriding dependency ${details.requested.group}:${details.requested.name} version ${details.requested.version} --> $overrideVersion")
                details.useVersion overrideVersion
                println("********************************************************")
            }
            }
        }
    }

Tepi berdarah benar-benar berdarah untukku sekarang

Saya juga punya masalah dengan login google, saya memperbaikinya. edit \node_modules\react-native-google-signin\android\build.gradle

compile 'com.google.android.gms:play-services-auth:+
ubah + menjadi 11.6.0

+1

@nopedev saran tidak bekerja untuk saya :/

edit

android/build.gradle

bekerja untuk saya

...

allprojects {
    repositories {
        ...
        configurations.all {
            resolutionStrategy {
                force "com.google.android.gms:play-services-auth:11.8.0"
            }
        }
    }
}

aku punya

Apa yang salah:
Eksekusi gagal untuk tugas ':react-native-device- info:processReleaseResources '.
Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

dan

Apa yang salah:
Eksekusi gagal untuk tugas ':react-native-Push-notification- info:processReleaseResources '.
Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

dan saya menyelesaikannya dengan mengubah menjadi node-modules/react-native-device-info/Android/build.gradle

compile 'com.google.android.gms:play-services-gcm:11.6.0'

Tapi sekarang saya punya yang lebih umum

  • Apa yang salah:
    Eksekusi gagal untuk tugas ': app: processReleaseResources '.
    Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

Bagaimana mengatasi ini??

Terima kasih

masalah yang sama
Lingkungan:
OS: macOS Sierra Tinggi 10.13.4
Simpul: 8.9.4
Benang: 1.3.2
npm: 5.6.0
Penjaga: 4.9.0
Xcode: Xcode 9.1 Versi build 9B55
Android Studio: 3.0 AI-171.4443003

Paket: (diinginkan => diinstal)
bereaksi: ^16.3.0-alpha.1 => 16.3.0-alpha.1
reaksi-asli: 0.54.2 => 0.54.2

FAILURE: Build gagal dengan pengecualian.

  • Apa yang salah:
    Eksekusi gagal untuk tugas ':react- native- camera:processReleaseResources '.

    Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

  • Mencoba:
    Jalankan dengan opsi --stacktrace untuk mendapatkan jejak tumpukan. Jalankan dengan opsi --info atau --debug untuk mendapatkan lebih banyak keluaran log.

Saya mendapatkan kesalahan berikut saat menjalankan aplikasi saya (react-native run-Android)

* What went wrong:
Execution failed for task ':react-native-device-info:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'

Saya menggunakan solusi @indrawanadjie dan berhasil untuk saya...

Saya pergi ke node_modules/react-native-device-info/Android/build.gradle
Di baris
compile 'com.google.android.gms:play-services-auth:+
ubah + menjadi 11.6.0

Sekarang ini seharusnya hanya perbaikan cepat ...

Jika ada yang menggunakan react-native-camera, buka node-modules/react-native-camera/android dan edit build.gradle

berubah dari:

dependencies{ .... compile 'com.google.android.gms:play-services-vision:+ }

ke:

dependencies{ .... compile 'com.google.android.gms:play-services-vision:11.8.0 }

sebagai solusi sementara

Menggunakan plugin cordova firebase mendapatkan masalah ini. Ada solusi untuk itu????

issue

Coba tingkatkan plugin gradle ke 3.0.1, ini akan membantu https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
Anda juga mungkin menghadapi beberapa masalah karena keterbatasan dex, multiDexEnabled benar dapat membantu

Nah ini baru bagus. Seluruh ekosistem diturunkan oleh "+" dalam ketergantungan ketergantungan seseorang.

saya mengubah semua dependensi menjadi 12.0.0 tetapi firebase menunjukkan kesalahan karena dependensi internal

Saya perlu mengubah:

compile "com.google.android.gms:play-services-wallet:11.8.0" dalam android/app/build.gradle

dan

compile 'com.google.android.gms:play-services-analytics:11.8.0' dalam node_modules/react-native-google-analytics-bridge/android/build.gradle

dan itu berhasil sekarang

@AndrejGajdos Anda benar tetapi ini bukan solusi untuk mengubah sesuatu di node_modules berfungsi di lokal tetapi tidak di build baru

di ionic // tambahkan ini di platform/build.gradle/
semua proyek {
repositori {
jcenter()
ahli {
url " https://maven.google.com "
}
konfigurasi.semua {
resolusiStrategi {
// Tambahkan kekuatan (11.4.0 adalah versi yang ingin Anda gunakan)
paksa 'com.google. firebase:firebase-messaging :11.4.0'
paksa 'com.google. firebase:firebase-core :11.4.0'
paksa 'com.google.android. gms:play-services-gcm :11.4.0'
}
}
}
}

bekerja untuk saya

@jigaryadav benar.
@AndrejGajdos solusi Anda tidak akan berfungsi di CI.
Kecualikan saja deps buruk dari modul di android/app/build.gradle untuk menggunakan versi deps Anda sendiri, misalnya, berikut konfigurasi kami di Tipsi:

dependencies {
    ...
    compile(project(':react-native-firebase-crash-report')) {
        exclude group: 'com.google.firebase', module: 'firebase-core'
        exclude group: 'com.google.firebase', module: 'firebase-crash'
    }
    compile(project(':react-native-firebase-analytics')) {
        exclude group: 'com.google.firebase', module: 'firebase-core'
        exclude group: 'com.google.firebase', module: 'firebase-analytics'
    }
    compile(project(':react-native-fcm')) {
        exclude group: "com.google.firebase"
    }
}

:processDebugResources
GAGAL

FAILURE: Build gagal dengan pengecualian.
.....

  • Apa yang salah:
    Eksekusi gagal untuk tugas ':processDebugResources'.
    > Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

[ERROR] Terjadi kesalahan saat menjalankan cordova run android (kode keluar 1).

dan file project.properties saya meliputi:

target=android-26
android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-plugin-firebase/richer-build.gradle
cordova.system.library.1=com.google. gsm:google-services :+
cordova.system.library.2=com.google.android. gms:play-services-tagmanager :+
cordova.system.library.3=com.google. firebase:firebase-core :+
cordova.system.library.4=com.google. firebase:firebase-pesan :+
cordova.system.library.5=com.google. firebase: firebase-crash :+
cordova.system.library.6=com.google. firebase:firebase-config :+

saya mencoba mengubah cordova.system.library.3=com.google. firebase:firebase-core :+ ke cordova.system.library.3=com.google. firebase: firebase-core :11.6.0
Tidak ada yang berhasil dari saya.

info proyek ionik saya:

paket cli: (C:\Users\ADT-LPT88\AppData\Roaming\npm\node_modules)
@ionic/cli-utils : 1.13.1
ionik (CLI ionik): 3.13.1
paket global:
cordova (CLI Cordova): 7.1.0
paket lokal:
@ionic/skrip aplikasi : 3.1.5
Platform Cordova: android 6.3.0
Kerangka Ionik: sudut ionik 3.9.2
Sistem:
Alat SDK Android : 26.1.1
Simpul: v6.11.3
npm : 3.10.10
OS: Windows 7
Lain-lain:
backend: pro

ada ide?

saya juga mendapat kesalahan yang sama saya menggunakan potongan kode
konfigurasi.semua {
resolusiStrategi {
paksa 'com.google.android. gms:play-services-vision :10.2.0'
paksa 'com.android. dukungan:exifinterface :27.+'
}
}
di android/build.gradle
sekarang build berhasil tetapi mendapat kesalahan seperti tidak dapat membaca Aspek properti tidak terdefinisi

setiap tambalan berfungsi dengan baik untuk saat ini tetapi saya terjebak dalam eksekusi ini apakah ada yang tahu layanan mana yang digunakan onesignal?

Execution failed for task ':react-native-onesignal:processReleaseResources'

Kesalahan: cmd: Perintah gagal dengan kode keluar 1 Keluaran kesalahan:
FAILURE: Build gagal dengan pengecualian.

  • Apa yang salah:
    Eksekusi gagal untuk tugas ':processDebugResources'.

    Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

  • Mencoba:
    Jalankan dengan opsi --stacktrace untuk mendapatkan jejak tumpukan. Jalankan dengan opsi --info atau --debug untuk mendapatkan lebih banyak keluaran log.

@Lifesoftware ada begitu banyak jawaban untuk kesalahan Anda

@isnifer terima kasih

@isnifer yang mana

Saya mencoba semua jawaban tetapi tetap tidak berhasil.

@Lifesoftware tampilkan info debug lengkap

@Lifesoftware sederhana karena saya berjuang dengan proyek saya, saya menemukan bahwa semua dependensi yang Anda gunakan dalam proyek Anda semuanya menggunakan '+' dan sekarang tidak berfungsi lagi jadi terapkan versi spesifik untuk itu dengan melakukan

di : android/build.gradle

configurations.all {
            resolutionStrategy {
              force "com.google.android.gms:play-services-gcm:11.8.0"
              .... your other dependencies
            }
        }

ini bekerja untuk saya karena saya terjebak dalam onesignal tetapi @isnifer membantu saya dan sekarang semuanya berfungsi dengan baik

mendapatkan kesalahan yang sama

  • Apa yang salah:
    Eksekusi gagal untuk tugas ':processDebugResources'.
    > Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'

ini adalah proyek cordova
saya menggunakan plugin google ini
cordova-plugin-firebase 0.1.25 "Plugin Google Firebase"
cordova-plugin-geolocation 2.4.3-dev "Geolokasi"
cordova-plugin-google-analytics 1.7.4 "Plugin Google Universal Analytics"
cordova-plugin-googleplus 5.1.1 "Masuk dengan Google"

itu berjalan dengan benar.
tiba-tiba berhenti bekerja

saya mencoba mengubah versi ke 11.0.0 di build.gradle tetapi tidak berhasil untuk saya

@Lifesoftware

apakah Anda punya solusi untuk ini ???

@jigaryadav tolong periksa saya menambahkan semua ketergantungan.
saya menggunakan plugin firbase.

konfigurasi.semua {
resolusiStrategi {
paksa 'com.android. dukungan:dukungan-v4 :24.0.0'
paksa 'com.google.android. gms:play-services-vision :10.2.0'
paksa 'com.android. dukungan:exifinterface :27.+'

}
}

@Lifesoftware apakah Anda menggunakan react-native-firebase ?

@smayur00

Masih menghadapi masalah yang sama

@jigaryadav

Tidak ada plugin cordova (cordova-plugin-firebase)

Saya juga menghadapi masalah yang sama, sekarang tidak dapat membangun apk.

build.gradle saya berisi,

kompilasi proyek(':react-native-orientation')
kompilasi proyek(':react-native-share')
kompilasi(proyek(':react-native-firebase')) {
transitif = salah
}
kompilasi "com.google. firebase: firebase-invites :11.8.0"
kompilasi proyek(':react-native-google-analytics-bridge')
kompilasi proyek(':react-native-vector-icons')
kompilasi proyek(':react-native-send-intent')
kompilasi proyek(':react-native-onesignal')
kompilasi(proyek(':react-native-maps')){
mengecualikan grup: 'com.google.android.gms', modul: 'play-services-base'
kecualikan grup: 'com.google.android.gms', modul: 'play-services-maps'
}
kompilasi 'com.google.android. gms:play-services-base :11.8.0'
kompilasi 'com.google.android. gms:play-services-maps :+'
kompilasi proyek(':react-native-facebook-account-kit')
kompilasi proyek(':react-native-code-push')
kompilasi fileTree(dir: "libs", sertakan: ["*.jar"])
kompilasi "com.android. dukungan: appcompat-v7 : 23.0.1"
kompilasi "com.facebook. react:react-native :+"

Ada saran tolong

@Lifesoftware maaf tidak tahu tentang plugin Cordova tetapi logikanya sama, saya kira Anda harus menemukan Cordova

@jigaryadav Bisakah Anda membagikan file build.gradle Anda?

Banyak perpustakaan bermigrasi ke mekanisme "Properti Konfigurasi Gradle" baru. Periksa perpustakaan terkait Anda untuk melihat apakah mereka mendukungnya.

di sini @Lifesoftware

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
        maven {
            url 'https://maven.google.com'
        }
        configurations.all {
            resolutionStrategy {
            // react-native-onesignal
              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"
              // react-native-google-sign-in
              force "com.google.android.gms:play-services-auth:11.8.0"

            }
        }
    }
}

@jigaryadav saya menggunakan react-native-firebase.
Ini menyebabkan kesalahan ini.
Apakah Anda tahu garis gaya mana yang diperlukan pada 'build.gradle'?
Terima kasih.

@sarykemmoun Lihat komentar saya di atas untuk react-native-firebase dan firebaseVersion

@sarykemmoun pertama-tama, lihat komentar Christocracy ini https://github.com/facebook/react-native/issues/18479#issuecomment -374.938.507.
Apakah Anda yakin bahwa react-native-firebase menyebabkan kesalahan? Sepertinya mereka memiliki versi tetap

@sarykemmoun cara mendefinisikan variabel ini lihat di sini — https://github.com/facebook/react-native/issues/18479#issuecomment -374849967

Semua orang yang mendengarkan di utas ini harus melakukan hal berikut.

Seperti yang direkomendasikan oleh Android Developer Document Gradle Tips & Tricks (Lihat " Mengonfigurasi properti seluruh proyek "), jika aplikasi hosting mendefinisikan properti berikut di root mereka build.gradle , modul rekan (seperti react-native-maps , react-native-firebase , react-native-device-info , dll) dapat menyelaraskan dependensinya seperti yang diminta:

android/build.gradle

buildscript {...}

allprojects {...}

/**
 * Project-wide gradle configuration properties for use by all modules
* NOTE:  Set your versions here as desired using the existing values defined in your
* android/app/build.gradle
*/
+ext {
+    compileSdkVersion   = 26
+    targetSdkVersion    = 26
+    buildToolsVersion   = "26.0.2"
+    supportLibVersion   = "26.1.0"
+    googlePlayServicesVersion = "11.8.0"
+    firebaseVersion = "11.8.0"  // <-- if you're using react-native-firebase
+    androidMapsUtilsVersion = "0.5+"  // <-- for react-native-maps
+}

android/app/build.gradle

android {
+    compileSdkVersion rootProject.compileSdkVersion 
+    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
+        targetSdkVersion rootProject.targetSdkVersion
    }
}
dependencies {
     compile fileTree(dir: "libs", include: ["*.jar"])
+    compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
     compile "com.facebook.react:react-native:+"  // From node_modules
}

Ini memberikan mekanisme yang jauh lebih baik untuk menyelaraskan versi play-services daripada semua bisnis jahat exclude group :

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

Terima kasih, @christocracy dan @isnifer .

@christocracy koreksi saya jika saya salah mengerti. Solusi Anda akan membantu kami hanya jika modul pihak ketiga mendukungnya, ya? Misalnya, jika modul pihak ketiga hanya menggunakan versi wildcard sebagai "+" alih-alih $firebaseVersion — itu tidak akan berfungsi.

@isnifer Benar. Modul pihak ketiga harus mendengarkan variabel-variabel ini. Semakin banyak yang melakukannya. Semoga acara ini memberikan "kick-in-the-pants" untuk semua pengembang modul :)

Seharusnya tidak ada lagi version:+ .

@christocracy terima kasih, itu artinya, kita perlu menggunakannya di tipsi-stripe juga.

Jika Anda sudah mengubah versi di /android/build.gradle tetapi belum berhasil. Mungkin Anda perlu memeriksa beberapa paket perpustakaan di node_modules. Misalnya: react-native-onesignal juga mengkompilasi beberapa layanan bermain dengan versi tertinggi (mereka menggunakan +) sehingga dapat membuat masalah ini.
Anda dapat meletakkan skrip di direktori root dan menambahkan {"scripts": {"postinstall": "node changeVersionGoogleService.js" }} dalam paket .json sehingga dapat dijalankan untuk mengubah versi secara otomatis saat Anda menginstal npm.
Ini skripnya: https://Gist.github.com/duytq94/47ef945131b61de538447d449813b3d4
Skrip saya sekarang otomatis mengubah versi 'react-native-onesignal',
'react-native-admob',
'react-native-maps',
'react-asli-google-masuk'

@isnifer Haha. Saya memiliki masalah yang diposting di modul react-native-background-geolocation melibatkan tipsi-stripe . Saya bermaksud mengirim PR yang sama di sana yang saya kirim ke react-native-maps :)

Jika ada yang menggunakan modul dengan play-services / firebase versi hard-coded (misalnya: :+ ), kirimkan tautan ke PR saya di react-native-maps . Ini adalah hal yang sangat mudah dan non-invasif untuk diterapkan oleh pengembang modul.

@isnifer (dari repo pribadi jadi tangkapan layar)

@christocracy haha, kami akan merilis v5 hari ini. @ngoryachev sedang mengerjakan changelog sekarang. Sampai jumpa lagi)

Saat ini di Google, orang yang merilis pembaruan 12.0.0: "Ini akan merugikan saya"

this is gonna cost me

Satu-satunya perbaikan saya, setelah mencoba semuanya, adalah menambahkan yang berikut ke android/build.gradle :

allprojects {
    repositories {
        ...
        configurations.all {
            resolutionStrategy {
              force "com.google.android.gms:play-services-gcm:11.8.0"
              force "com.google.android.gms:play-services-auth:11.8.0"
            }
        }
    }
}

@gesf Saya harus melakukan sesuatu yang serupa karena salah satu dependensi saya tidak mendukung variabel googlePlayServicesVersion (belum). Ada PR di repo itu untuk memperbaruinya, jadi mungkin perhatikan dependensi yang rusak untuk melihat apakah mereka diperbarui dalam waktu dekat (atau sudah). Maka Anda harus dapat menghapus bagian configurations.all dan kita semua bisa bernapas lega!

Beginilah cara saya memperbaiki proyek saya (bit com.Android.support sudah ada di sana, saya menambahkan com.google.android.gms dan com.google.firebase)

configurations.all {
    resolutionStrategy {
        eachDependency { DependencyResolveDetails details ->
            def requested = details.requested
            if (requested.group == 'com.android.support') {
                if (!requested.name.startsWith("multidex")) {
                    details.useVersion '25.3.1'
                }
            }
            if (requested.group == 'com.google.android.gms') {
                details.useVersion '11.8.0'
            }
            if (requested.group == 'com.google.firebase') {
                details.useVersion '11.8.0'
            }
        }
    }
}

@jigaryadav , @AndrejGajdos , @isnifer
Saya telah mengubah di semua tempat file properti menjadi 11.+, kali ini mendapatkan kesalahan yang berbeda :thinking: :thinking:

ini file prorties saya
target=android-26
android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-plugin-firebase/app-build.gradle
cordova.system.library.1=com.google. gms:layanan-google :11.+
cordova.system.library.2=com.google.android. gms:play-services-tagmanager :11.+
cordova.system.library.3=com.google. firebase:firebase-core :11.+
cordova.system.library.4=com.google. firebase:firebase-messaging :11.+
cordova.system.library.5=com.google. firebase: firebase-crash :11.+
cordova.system.library.6=com.google. firebase:firebase-config :11.+

dan Kesalahannya adalah:

Apa yang salah:
Terjadi masalah saat mengonfigurasi proyek root 'android'.
Tidak dapat menyelesaikan semua dependensi untuk konfigurasi ':_debugApkCopy'.

GAGAL BANGUNAN

Total waktu: 8,075 detik
Tidak dapat menemukan versi apa pun yang cocok dengan com.google. gsm:layanan-google :11+.
Versi yang tidak cocok:
3.2.0
3.1.2
3.1.1
3.1.0
3.0.0

  • 42 lainnya
    Diperlukan oleh:
    proyek :

Untuk ini saya telah menambahkan kode versi Android dan ios-CFBundleVersion ke config.xml saya, masih kesalahan yang sama

Ada yang bisa membantu saya dalam hal ini?

@vsreddy91 Anda mencari bantuan Cordova di utas React Native .

Itu seperti mencari bantuan untuk Honda Anda di dealer Tesla.

@poppistar , terima kasih banyak atas masukan Anda! Saya pikir Anda benar. Untuk amannya, saya akan menerapkan teknik @joeflateau (juga terima kasih untuk itu), untuk saat ini!

Saya mendapatkan kesalahan ini:
"Apa yang salah:
Eksekusi gagal untuk tugas ':RND eviceInfo:processReleaseResources '.
Kesalahan: lebih dari satu perpustakaan dengan nama paket 'com.google.android.gms.license'"

Ada yang bisa bantu saya? Terima kasih!

@arcbook126 react-native-device-info mengetahui Properti Konfigurasi Gradle googlePlayServicesVersion . Konfigurasikan ke 11.8.0 , seperti yang diinstruksikan dalam komentar saya di atas

cd android && ./gradlew app:dependencies --configuration compile

catat perintah ini, ini akan memberi tahu Anda versi Google play apa yang digunakan di semua perpustakaan yang diimpor.

  1. Buka proyek di studio dan di semua perpustakaan pihak ketiga ganti

  2. kompilasi 'com.google. firebase:firebase-messaging :+' dengan versi spesifik seperti ini.
    kompilasi 'com.google. firebase:firebase-messaging :11.8.0'

Anda mungkin menggunakan perpustakaan lain tidak hanya fcm ,vison atau apa pun tetapi aturan praktis menyatakan untuk menggunakan versi tertentu itu akan membuat hidup Anda mudah.
Terima kasih.

@christocracy kami rilis

@isnifer Tapi Anda tidak mengimplementasikan variabel googlePlayServicesVersion atau supportLibVersion ?

Berikut ini sesuatu yang mungkin membantu: Jika Anda bergantung pada satu atau lebih modul yang belum memperbaiki versi ketergantungan gradlenya, Anda dapat menggunakan patch-package untuk mengedit versi dalam node_modules dan menghasilkan tambalan yang akan bertahan bahkan di server build atau CI, tanpa perlu mem-fork salinan repositori modul Anda sendiri.

@christocracy Mereka berubah menjadi 11,8 sebagai gantinya. @isnifer Apakah kalian dapat melacak perubahan yang melanggar dari 11,8 menjadi 12?

@christocracy ya, kami melakukan PR kemarin, tetapi #PlayServicesGate melakukannya hari ini :) Anda dapat membantu kami)

@coreh ya, bagus!
@yangtaufoo apakah Anda memberi tahu tentang tipsi-stripe ?

@isnifer Saya tidak mengerti maksud Anda.

Bagaimanapun, saya menyadari bahwa exclude group sudah usang (tidak yakin tentang ini), tetapi lihat @ https://developer.Android.com/studio/build/gradle-plugin-3-0-0-migration .html#exclude_dependencies atau mungkin kata kunci ketergantungan diubah (https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations)

Sunting 1 - Ditemukan sumber pendukung lebih lanjut (https://stackoverflow.com/questions/48365687/gradle-exclude-group-from-compile). Dengan demikian, kompilasi masih dapat digunakan dan solusi ini mungkin berhasil. Harus mengujinya.

Dari
exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'

Ke
variant.getCompileConfiguration().exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'

+1 mulai mendapatkan ini hari ini juga

* What went wrong:
Execution failed for task ':app:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

android/app/build.gradle

buildscript {
  repositories {
    maven { url 'https://maven.fabric.io/public' }
  }
  dependencies {
    classpath 'io.fabric.tools:gradle:1.22.1'
  }
}

apply plugin: "com.android.application"
apply plugin: 'io.fabric'

import com.android.build.OutputFile

project.ext.react = [
    entryFile: "index.js"
]

apply from: "../../node_modules/react-native/react.gradle"

def enableSeparateBuildPerCPUArchitecture = false

def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
        applicationId "....."
        minSdkVersion 16
        targetSdkVersion rootProject.targetSdkVersion
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
    signingConfigs {
    release {
          if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
              storeFile file(MYAPP_RELEASE_STORE_FILE)
              storePassword MYAPP_RELEASE_STORE_PASSWORD
              keyAlias MYAPP_RELEASE_KEY_ALIAS
              keyPassword MYAPP_RELEASE_KEY_PASSWORD
          }
      }
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

repositories {
   flatDir {
       dirs "../../node_modules/react-native-background-geolocation/android/libs"
   }
   maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    compile project(':react-native-maps')
    compile project(':react-native-check-app-install')
    compile project(':react-native-vector-icons')
    compile project(':react-native-splash-screen')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile(project(':react-native-background-geolocation')) {
      exclude group: 'com.google.android.gms', module: 'play-services-location'
    }
    compile(name: 'tslocationmanager', ext: 'aar')
    compile(project(':react-native-maps')) {
        exclude group: 'com.google.android.gms'
    }
    compile ('com.google.android.gms:play-services-location:+') {
      force = true;
    }
    compile ("com.google.android.gms:play-services-base:+") {
      force = true;
    }
    compile ("com.google.android.gms:play-services-maps:+") {
        force = true;
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.6.7<strong i="10">@aar</strong>') {
      transitive = true
    }
}

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

@christocracy , saya mencoba metode Anda tetapi tidak berhasil.

@EsdrasEtrenne Saya baru saja menerbitkan react-native-background-geolocation @ 2.12.0-beta.1 sekitar 7 menit yang lalu. Ini diterbitkan sekarang ke npm.

oh luar biasa,

perbarui Saya memperbaiki dependensi saya untuk menghapus pengecualian saat berfungsi ...
Saya baru menyadari bahwa Anda mengatakan bahwa jika Anda memiliki konfigurasi global itu, Anda dapat menghapus pengecualian

dependencies {
    compile project(':react-native-maps')
    compile project(':react-native-check-app-install')
    compile project(':react-native-vector-icons')
    compile project(':react-native-splash-screen')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile project(':react-native-background-geolocation')
    compile(name: 'tslocationmanager', ext: 'aar')
    compile project(':react-native-maps')
    compile('com.crashlytics.sdk.android:crashlytics:2.6.7<strong i="9">@aar</strong>') {
      transitive = true
    }

@EsdrasEtrenne Anda harus memperhatikan dengan cermat dokumen penyiapan Android baru. Banyak yang telah berubah. Berpura-puralah Anda memasang plugin untuk pertama kalinya. Jika Anda memiliki masalah lebih lanjut, posting masalah di repo.

Kami memperbaikinya dengan memaksa semua com.google.android.gms ke versi tertentu

di /android/app/gradle.properties :

...
googlePlayServicesVersion=11.8.0
...

di /android/app/build.gradle :

...
dependencies {
  ...
  compile ("com.google.android.gms:play-services-auth:$googlePlayServicesVersion") {force = true}
  compile ("com.google.android.gms:play-services-analytics:$googlePlayServicesVersion") {force = true}
  compile ("com.google.android.gms:play-services-location:$googlePlayServicesVersion") {force = true}
  compile ("com.google.android.gms:play-services-gcm:$googlePlayServicesVersion") {force = true}
  ...
}
...

di /android/build.gradle :

def googlePlayServicesVersion = googlePlayServicesVersion
...
allprojects {
    repositories {
        ...
        configurations.all {
            resolutionStrategy {
                force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
                force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
            }
        }
    }
}

Sekarang bekerja dengan sempurna

tanda

@dwicao Anda benar-benar dapat memindahkan def di gradle.properties ke android/build.gradle dan meletakkannya seperti ini...

buildscript {...}
allprojects {...}
ext {
    googlePlayServicesVersion=11.8.0
}

googlePlayServicesVersion kemudian akan tersedia di seluruh gradle Anda.

Ini berfungsi kemarin lalu tiba-tiba berhenti bekerja hari ini. Saya tidak tahu siapa yang harus disalahkan dan ini benar-benar menjengkelkan. Saya sudah melakukan hal yang serupa dengan apa yang telah disarankan (menggunakan ext untuk mendefinisikan variabel global dan mengecualikan + memaksa kombo dalam kompilasi) tetapi masih mendapatkan kesalahan, saya kehabisan ide. Saat ini memaksa layanan google all play ke 11.6.2 (lihat di bawah). Saya juga sedang mengerjakan proyek pameran terpisah.

  ....
  compile(...) {
     exclude group: 'com.google.android.gms'
  }
  compile ("com.google.android.gms:play-services:11.6.2") {
    force = true;
  }

Menangkap output dari:

$ cd android 
$ ./gradlew app:dependencies

Simpan ke file dan lampirkan. Jangan paste output ke thread ini, terlalu panjang.

@christocracy https://Gist.github.com/pencilcheck/ed4a4a3ab5f9e2228c5772df1c8a901a inilah hasilnya.

Yang aneh adalah saya tidak dapat menemukan perpustakaan yang bernama "...android.gms.license"

Betapa kacaunya Expo. Edit komentar Anda sebelumnya dan posting app/build.gradle Anda ke inti yang lain.

Terima kasih telah meluangkan waktu. Berikut adalah inti dari app/build.gradle: https://Gist.github.com/pencilcheck/d4cf17590430ec639db596e41c36d831

Versi dukungan lib harus cocok dengan compileSdkVersion. Ketika compileSdkVersion 26 , Anda harus menggunakan lib dukungan versi 26 yang sesuai, misalnya 26.1.0 .

Anda menentukan versi lib dukungan dari 23

Setelah mengubah ke 26.1.0 untuk versi lib dukungan menggunakan variabel yang ditentukan di atas, masalahnya tetap ada, saya masih mendapatkan kesalahan yang sama.

Aneh, saya pikir solusi di utas ini harus berlaku untuk semua dependensi di semua sub-proyek bukan?

Karena kesalahan ini berasal dari react-native-device-info, mengubah masalah versi support lib tidak terlalu memengaruhi itu.

Error:Execution failed for task ':react-native-device-info:processDebugResources'.
> Error: more than one library with package name 'com.google.android.gms.license'

react-Native-device-info memahami variabel yang secara khusus bernama supportLibVersion

dan apakah Anda menggunakan versi terbaru react-native-device-info ?

Lihat Wiki dari react-native-background-geolocation

Anda ingin mendefinisikan ext.googlePlayServicesVersion . react-native-device-info juga mengetahui variabel ini.

@pencilcheck Lakukan ini di android/build.gradle

buildscript {...}
allprojects {...}
ext {
    googlePlayServicesVersion=11.8.0
}

@kristokrasi
Sebenarnya tidak. Itu 0.11.0, sekarang ditingkatkan ke 0.21.2 dan mencobanya lagi dan tampaknya berhasil sekarang dengan solusi Anda.

Terima kasih!

@yangtaufoo ya saya sebenarnya menggunakan versi perpustakaan yang lebih lama itu sebabnya tidak mengetahui perubahannya. Tapi tetap menghargai bantuan dan komentar. Terima kasih!

Haha, sekarang kesalahannya hilang tetapi muncul kembali di "react-native-onesignal", sial!

@pencilcheck ada di semua perpustakaan yang menggunakan GMS, saya pikir Anda perlu melakukan fork dan menerapkan perubahan bertahap jika mereka belum mendukungnya. Dugaan awal saya adalah kami (semua paket menggunakan GMS) mungkin perlu memindahkan com.android.tools.build:gradle , buildToolsVersion , com.android.support:appcompat-v7 , com.google.gms:google-services ke versi terbaru yang mendukung gradle 3.0 pengaya.

Anda kacau dengan satu sinyal . Seperti yang Anda lihat, versi mereka semua hard-coded. Modul itu tidak mengetahui properti konfigurasi gradle Anda. Mereka membutuhkan PR saya yang saya kirim ke 'react-native-maps', diposting di atas di utas ini.

Paket Layanan Google Play terbaru menyebabkan masalah. Di aplikasi saya, saya menggunakan paket berikut - react-native-google-signin , react-native-google-analytics-bridge , react-native-device-info . Masing-masing memiliki ketergantungan dengan com.google.android.gms . Di setiap file build gradle paket, Anda akan menemukan sesuatu yang mirip seperti ini - com.google.android. + akan menarik paket terbaru dan itu menyebabkan masalah. Ini adalah perbaikan sementara jika Anda tidak ingin memutakhirkan paket dan mengatur variabel env untuk versi -

di file gradle build tingkat atas Anda, tambahkan kode berikut -

allprojects {
    repositories {
        configurations.all {
            resolutionStrategy {
                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"
            }
        }
...

Memodifikasi file build.gradle di dalam cordova-plugin-firebase

kompilasi 'com.google. firebase: firebase-crash :11.+'
kompilasi 'com.google. firebase:firebase-auth :11.+'

Dan file project.properties

target=android-25

android.library.reference.1=CordovaLib
cordova.gradle.include.3=cordova-plugin-firebase/project-build.gradle
cordova.system.library.3=com.google. gsm:google-services :+
cordova.system.library.4=com.google.android. gms:play-services-tagmanager :11.+
cordova.system.library.5=com.google. firebase:firebase-core :11.+
cordova.system.library.6=com.google. firebase:firebase-messaging :11.+
cordova.system.library.7=com.google. firebase: firebase-crash :11.+
cordova.system.library.8=com.google. firebase:firebase-config :11.+

Dan akhirnya masalah saya diperbaiki adalah dapat membangun proyek dengan benar

@Karthikeyan-Pandian perubahan Anda dilakukan dengan benar tetapi masih tidak berfungsi.

Mengubah file build.gradle di dalam cordova-plugin-firebase (plugins\cordova-plugin-firebase\src\android)
dependensi {
kompilasi 'saya. leolin:ShortcutBadger :1.1. 4@aar '
kompilasi 'com.google. firebase: firebase-crash :11.+'
kompilasi 'com.google. firebase:firebase-auth :11.+'
}
Dan file project.properties

cordova.gradle.include.1=cordova-plugin-firebase/android-build.gradle
cordova.system.library.2=com.google. gsm:google-services :+
cordova.system.library.3=com.google. firebase:firebase-core :11.+
cordova.system.library.4=com.google. firebase:firebase-messaging :11.+
cordova.system.library.5=com.google. firebase: firebase-crash :11.+
cordova.system.library.6=com.google. firebase:firebase-config :11.+

@Lifesoftware
Apakah Anda menghapus platform android?

Jika tidak hapus dan tambahkan platform setelah memperbarui build.gradle di dalam folder cordova-plugin-firebase dan setelah menambahkan platform perbarui file project.properties kemudian buat dan periksa sekali

Jika itu tidak berhasil, beri tahu saya bahwa saya memiliki perbaikan lain yang dapat kita coba dengan itu.

@Karthikeyan-Pandian Ini Bekerja untuk saya. Terima kasih telah memberikan solusi

Saya bisa mengkompilasinya dengan 12.0.0 . Namun, beberapa perpustakaan mungkin rusak. Masih mencari tahu tingkat kerusakan. (Sunting: Menggunakan 11.8.0 di bawah ini karena banyak perpustakaan pihak ke-3 tidak memiliki implementasi Android untuk 12.0.0, tetapi implementasi ini akan memudahkan pemutakhiran dalam waktu dekat)

Tapi inilah yang telah saya lakukan,

  1. Dalam gradle-wrapper.properties , ubah distributionUrl menjadi https\://services.gradle.org/distributions/gradle-4.1-all.zip
  2. Mendefinisikan objek ext di android/build.gradle
ext {
    googlePlayServicesVersion = '11.8.0'
    compileSdkVersion = 27
    buildToolsVersion = '27.0.3'
    supportLibrariesVersion = '27.1.0'
}
// Force sub libs to use the compile sdk & build tools version
subprojects { subproject ->
    afterEvaluate{
        if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}
  1. Dalam app/build.gradle , mengubah semua compile menjadi implementation , menggunakan variabel objek ext yang ditentukan proyek dalam android/build.gradle (yaitu implementation "com.google.android.gms:play-services-gcm:$project.googlePlayServicesVersion"
  2. Di android/build.gradle , pastikan dependensi Anda adalah sebagai berikut
buildscript {
    repositories { ... }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.google.gms:google-services:3.2.0'
    }
}
  1. Jalankan ./gradlew clean && ./gradlew assembleDebug
  2. Di gradle.properties, tambahkan baris 'android.enableAapt2=false' untuk build rilis untuk digabungkan karena perubahan yang mengganggu di Build Tools v3.

Sunting: Perbaiki berfungsi untuk 12.0.0 (kompilasi dan jalankan proyek dengan sukses). Namun, perhatikan hal di atas tentang menggunakan 11,8 sebagai gantinya.

Solusi sederhana adalah temukan com.google.firebase di semua folder dan ubah

Setelah
kompilasi "com.google. firebase:firebase-core :+"
kompilasi "com.google. firebase:firebase-messaging :+"
kompilasi "com.google. firebase: firebase-crash :+"
kompilasi "com.google. firebase:firebase-config :+"

Sebelum
kompilasi "com.google. firebase:firebase-core :11.+"
kompilasi "com.google. firebase:firebase-messaging :11.+"
kompilasi "com.google. firebase: firebase-crash :11.+"
kompilasi "com.google. firebase:firebase-config :11.+"

Tautan ini memperbaiki masalah yang sama dan saya mencobanya, dan berfungsi untuk saya, Anda dapat memeriksanya di sini

Mengenai ini: https://github.com/facebook/react-native/issues/18479#issuecomment -375170840

@pencilcheck Saya cukup yakin Anda salah ketik pada baris ini :
Mengganti
if (details.requested.group == 'com.android.gms' ) {
dengan
if (details.requested.group == 'com.google.android.gms' ) {

Pendekatan saya adalah memindai semua proyek Android dan memperbarui versi layanan google play langsung ke setiap modul build.gradle
Detailnya di sini: https://medium.com/p/2fd245027832
Semoga dapat membantu Anda.

@nhancv Ini bukan merupakan perbaikan. Perbaikannya adalah ketika Anda dapat menggunakan 12.0.0 sebagaimana dimaksud.

Masalah ini tidak relevan dengan proyek React Native. Proyek ini tidak menyertakan dependensi gms/firebase, jadi dapat ditutup.

Ajukan masalah dengan perpustakaan yang menggunakan dependensi gms dengan + . Biasanya merupakan praktik yang buruk untuk menggunakan wildcard jika Anda ingin build yang dapat diulang.

Sebagai solusi praktis, tambahkan ini ke android/build.gradle (mirip dengan solusi @weihuali0509 tetapi lebih lengkap)

subprojects {
    ext {
        playServicesVersion = '11.8.0'
    }

    project.configurations.all {
        resolutionStrategy {
            eachDependency { details ->
                // Force dependencies to use the same version.
                def versionSelector = details.requested
                if (versionSelector.group == 'com.google.firebase'
                        || versionSelector.group == 'com.google.android.gms') {
                    details.useVersion playServicesVersion
                }
            }
        }
    }
}

Saya memang menemukan perbaikan sementara.
Coba temukan semua paket Anda dengan gms yang disertakan dalam modul simpul Anda.
Lakukan ini pada Android/build.gradle Anda

allprojects {
    repositories {

        // Temp fix for com.google.android.gms.license
        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"
            }
        }

        mavenLocal()
        jcenter()

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

Saya memperbaiki masalah dengan mengedit ini dari "Android/app/build.gradle" dan juga mengubah ini dari perpustakaan mana yang membuat masalah "node_modules\react-native-camera\androidbuild.gradle"

===>>> "com.google.android.gms :play-services-vision :11.+"

Saya sudah mencoba semuanya sejak kemarin, dari gradle hingga post install skrip node, dengan setiap versi: mungkin 11.6.0 11.8.0 12.0.0 dan versi Android build tools 26 dan 27 , sama sekali tidak ada yang berhasil, selalu memberikan pesan kesalahan yang sama Error: more than one library with package name 'com.google.android.gms.license'

Satu-satunya hal yang bervariasi adalah modul dari mana kesalahan ini dimuntahkan ...

kalian mungkin ingin mencoba solusi saya (https://github.com/facebook/react-native/issues/18479#comment-375200874) saya sudah menjalankannya. Perlu beberapa tambahan untuk perintah assembleRelease, selain itu berfungsi dengan baik

Saya mencoba semua yang Anda sarankan sejak 2 jam @yangguang2009 file gradle saya sekarang jauh lebih bersih sekarang;) tetapi itu tidak akan mempengaruhi hasil akhir sama sekali

Satu-satunya hal yang tidak berhasil untuk saya adalah sebagai berikut:

Di gradle-wrapper.properties, ubah distributionUrl menjadi https\://services.gradle.org/distributions/gradle-4.1-all.zip

@btoueg Bisakah Anda memposting cuplikan file gradle Anda?

Saya membangun ReactNative dari sumber, itu sebabnya saya tidak dapat dengan mudah menaikkan gradle ke 4.1

@yangtaufoo Ini root saya build.gradle :

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath 'de.undercouch:gradle-download-task:3.1.2'
        classpath 'com.google.gms:google-services:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

ext {
    googlePlayServicesVersion = '12.0.0'
    compileSdkVersion = 27
    buildToolsVersion = '27.0.3'
    supportLibrariesVersion = '27.1.0'
}

// Force sub libs to use the compile sdk & build tools version
subprojects { subproject ->
    afterEvaluate{
        if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            url "https://maven.google.com"
        }
        maven {
            url 'https://jitpack.io'
        }
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}

Saya telah bermain dengan semua jenis googlePlayServicesVersion , compileSdkVersion , buildToolsVersion , supportLibrariesVersion

Dan aplikasi saya build.gradle :

apply plugin: "com.android.application"
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-sentry/sentry.gradle"

def enableProguardInReleaseBuilds = true

android {
    compileSdkVersion "$project.compileSdkVersion"
    buildToolsVersion "$project.buildToolsVersion"
}

configurations.all {
    exclude group: 'com.facebook.react', module: 'react-native'
    resolutionStrategy {
        eachDependency { details ->
            // Force dependencies to use the same version.
            def requested = details.requested
            if (requested.group.startsWith('com.google.android.gms')) {
                details.useVersion "$project.googlePlayServicesVersion"
            }
            if (requested.group == 'com.google.firebase') {
                details.useVersion "$project.googlePlayServicesVersion"
            }
            if (requested.group == 'com.android.support' && !requested.name.startsWith('multidex')) {
                details.useVersion "$project.supportLibrariesVersion"
            }
        }
        // fail eagerly on version conflict (includes transitive dependencies)
        // e.g. multiple different versions of the same dependency (group and name are equal)
        failOnVersionConflict()

        // force certain versions of dependencies (including transitive)
        //  *append new forced modules:
        force 'me.leolin:ShortcutBadger:1.1.10'
        force 'com.android.support:multidex:1.0.3'
        force 'com.facebook.fresco:fbcore:0.13.0'
        force 'com.facebook.fresco:imagepipeline:0.13.0'
        force 'com.squareup.okhttp3:okhttp:3.5.0'
        force 'com.yqritc:android-scalablevideoview:1.0.3'
        force 'com.google.code.gson:gson:2.3.1'
        force 'com.google.zxing:core:3.2.1'
        force 'com.squareup.okio:okio:1.13.0'
    }
}

dependencies {
    configurations.all {
        exclude group: 'com.facebook.react', module: 'react-native'
    }
    compile fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:$project.supportLibrariesVersion"
    implementation 'com.yqritc:android-scalablevideoview:1.0.4'
    implementation 'com.amazonaws:aws-android-sdk-core:2.3.0'
    implementation 'com.amazonaws:aws-android-sdk-cognito:2.3.0'
    implementation 'com.amazonaws:aws-android-sdk-s3:2.3.0'
    implementation 'com.google.zxing:core:3.3.0'
    implementation 'com.facebook.fresco:animated-gif:0.13.0'
    compile project(':react-native-video')
    compile project(':react-native-fs')
    compile project(':react-native-orientation')
    compile project(':react-native-image-picker')
    compile project(':reactdate')
    compile project(':react-native-maps')  // make use of $project.googlePlayServicesVersion
    compile project(':react-native-push-notification')
    compile project(':react-native-vector-icons')
    compile project(':react-native-fbsdk')
    compile project(':react-native-camera')
    compile project(':react-native-blur')
    compile project(':react-native-linear-gradient')
    compile project(':react-native-fcm')
    compile project(':react-native-sentry')
    implementation "com.google.android.gms:play-services-gcm:$project.googlePlayServicesVersion"
    implementation "com.google.android.gms:play-services-location:$project.googlePlayServicesVersion"
    implementation "com.google.android.gms:play-services-vision:$project.googlePlayServicesVersion"
    implementation 'com.android.support:multidex:1.0.3'
    implementation "com.google.firebase:firebase-core:$project.googlePlayServicesVersion"
    implementation "com.google.firebase:firebase-messaging:$project.googlePlayServicesVersion"
    compile project(':ReactAndroid')  // make sure to keep this dependency last in the list
}

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

Bagi mereka yang masih menghadapi masalah, saya akan mencoba menjelaskan dengan jelas cara memperbaikinya, dan apa yang terjadi. Pertama, jika Anda mendapatkan kesalahan ini, kemungkinan besar kode Anda, atau paket npm yang disertakan memiliki garis
compile 'com.google.android.gms:play-services-XXXXXXX:+' di suatu tempat di file build.gradle , di mana XXXXX adalah salah satu layanan google play seperti auth atau location . contoh yang bagus adalah react-native-fused-location .

Sekarang untuk memaksa versi untuk semua pustaka yang dikompilasi ke versi + Anda perlu menerapkan versi, Anda melakukannya di file android/build.gradle root Anda dengan menambahkan bagian configuration.all di contoh di bawah ini:

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
       ...
       ...
        configurations.all {
            resolutionStrategy {
                force "com.google.android.gms:play-services-location:11.8.0"
            }
        }
    }
}

Saya juga akan mengikuti @christocracy yang dikatakan di atas dan mengatur variabel untuk perpustakaan lain untuk dikonsumsi dalam file ini, contoh:

ext {
    compileSdkVersion   = 26
    targetSdkVersion    = 26
    buildToolsVersion   = "26.0.2"
    supportLibVersion   = "26.1.0"
    googlePlayServicesVersion = "11.8.0" 
    androidMapsUtilsVersion = "0.5+"  // <-- for react-native-map
}

HARAP DICATAT - ada berbagai layanan permainan yang mungkin ingin Anda siapkan untuk strategi resolusi berdasarkan perpustakaan apa yang menimbulkan masalah, yaitu play-services-auth , dll.

kemudian di file android/app/build.gradle gunakan variabel rootProject yaitu

android {
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
        applicationId "com.driver"
        minSdkVersion 16
        targetSdkVersion rootProject.targetSdkVersion
        googlePlayServicesVersion = rootProject.googlePlayServicesVersion
    ...

dan pastikan dependensi Anda tidak memaksa kompilasi versi tertentu dari layanan google-play, dan kompilasi versi appcompat dari rootProject Anda. contoh konfigurasi saya

dependencies {
    compile project(':react-native-background-geolocation')
    compile project(':react-native-background-fetch')
    compile project(':react-native-maps')
    compile project(':react-native-fused-location')
    compile project(':react-native-image-picker')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
}

@btoueg Anda mungkin ingin mengubah ini di build.gradle

classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.2.0'

Saya memposting posting media saya tentang masalah ini. Periksa dan beri tahu saya jika ada masalah!

https://medium.com/@chuckyong_3313/react -native-android-build-compilation-issue-with-google-play-api-for-android-v12-0-0-ccb2f1a0fb9c

Bagi saya, onesignal adalah satu-satunya modul simpul yang menggunakan layanan google play di proyek saya, jadi saya cukup mengubah yang berikut di /node_modules/react-native-onesignal/android/build.gradle :

compile 'com.google.android.gms:play-services-gcm:+'
compile 'com.google.android.gms:play-services-analytics:+'
compile 'com.google.android.gms:play-services-location:+'

ke

compile 'com.google.android.gms:play-services-gcm:11.8.0'
compile 'com.google.android.gms:play-services-analytics:11.8.0'
compile 'com.google.android.gms:play-services-location:11.8.0'

baru saja mengubah + menjadi 11.8.0
dan menjalankan proyek dan itu bekerja dengan baik. Tidak yakin apakah ini solusi yang baik tetapi pasti sangat singkat dan sederhana. Anda harus melakukannya untuk semua modul Anda yang menggunakan layanan google play. Mungkin bukan solusi terbaik jika Anda memiliki banyak.

sooooo banyak masalah menggunakan React-Native.
Saya hanya ingin menggunakan kamera dalam reaksi-asli, tidak dapat dilakukan dalam 2 hari terakhir.
mendapatkan kesalahan yang berbeda setiap kali, sekarang kesalahan "lebih dari satu lib".
Jika ada yang memiliki solusi kamera asli-reaksi yang berfungsi, silakan bagikan.

@ mk48 Kesalahan ini berasal dari google, google meluncurkan 12.0.0 dengan kesalahan. Itulah seluruh masalah saat ini

Terima kasih @KoenvGinkel , saya akan menghentikan proyek asli reaksi saya saat ini selama 2 hari ke depan, akan dilanjutkan setelah itu.
mudah-mudahan ini akan diselesaikan saat itu.

@mk48 ikuti ini, ini dapat membantu Anda,
Edit ini dari "Android/app/build.gradle" dan juga ubah ini dari perpustakaan mana yang membuat masalah "node_modules\react-native-camera\androidbuild.gradle"

===>>> "com.google.android.gms :play-services-vision :11.+"

@yangguang2009 terima kasih, semua infonya sangat berharga bagi saya

Saya tidak mengerti, saya harus mengubah classpath sampai https://github.com/facebook/react-native/issues/18479#issuecomment -375523567 dan saya bahkan tidak tahu Anda dapat mensinkronisasi versi gradle- pembungkus dengan versi classpath (yang membuat semuanya menjadi tidak jelas)

Saya menemukan posting blog Medium Anda menyeluruh dan saya sangat berterima kasih untuk itu.

Sekarang saya telah menyingkirkan masalah gms.license , saya dibiarkan dengan kesalahan ini yang terjadi setelah kompilasi:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processProReleaseResources'.
> Failed to execute aapt

Saya harap ini akan lebih mudah diselesaikan;)

@btoueg Ada masalah yang diketahui dengan Build Tools 3 (https://github.com/facebook/react-native/issues/16906) yang menyebabkan build untuk rilis gagal. Cara mengatasinya adalah dengan menambahkan android.enableAapt2=false ke android/gradle.properties sebagai solusi sementara.

Ya, saya juga menemukannya: https://github.com/react-navigation/react-navigation/issues/3097#issuecomment -358351112

Terima kasih

@Karthikeyan-Pandian @Lifesoftware

cordova.system.library.2=com.google. gsm:layanan-google :11+
cordova.system.library.3=com.google.android. gms:play-services-tagmanager :11+
cordova.system.library.4=com.google. firebase: firebase-core :11+
cordova.system.library.5=com.google. firebase:firebase-messaging :11+
cordova.system.library.6=com.google. firebase: firebase-crash :11+
cordova.system.library.7=com.google. firebase: firebase-config :11+
cordova.system.library.8=com.google.android. gms:play-services-analytics :11+
cordova.system.library.9=com.google.android. gms:play-services-auth :11+
cordova.system.library.10=com.google.android. gms:play-services-identity :11+

Setelah mengubah properti proyek
saya menambahkan platform
lalu ubah build
dependensi {
kompilasi 'saya. leolin:ShortcutBadger :1.1. 4@aar '
kompilasi 'com.google. firebase: firebase-crash :11.+'
kompilasi 'com.google. firebase:firebase-auth :11.+'
}

tetapi masih menunjukkan kesalahan

Tidak dapat menemukan versi apa pun yang cocok dengan com.google. gsm:layanan-google :11+.
Versi yang tidak cocok:
3.1.1
3.1.0
3.0.0
2.1.2
2.1.0
+ 42 lainnya
Diperlukan oleh:
proyek :

Terima kasih @muhammadmisbah , ini menyelesaikan masalah kamera. Terima kasih :)

Setelah memperbarui gradle saya, semuanya tampak berfungsi dengan baik.
mungkin kalian menjalankan gradle versi lama?
Versi saya saat ini adalah 4.6
https://gradle.org/install/

Setelah memperbarui gradle saya, saya menghapus folder gradle di folder Android saya.
Jalankan dengan androidstudio, yang memperbaikinya.

@yangtaufoo Setelah menyelesaikan kesalahan dengan mengikuti tutorial media Anda dan build saya berhasil, tetapi setelah itu aplikasi saya ditutup segera setelah terbuka ... Apakah ada solusi untuk ini??

@KoenvGinkel Itu tidak membantu saya :/

@yangtaufoo @Vijay-clustrex masalah yang sama terjadi pada saya. Setelah kesalahan teratasi, dan pembangunan akhirnya berhasil, aplikasi langsung mogok saat dibuka. Bantuan apa pun sangat dihargai.

Bagi mereka dengan aplikasi mogok, lakukan "adb logcat" di konsol dan mulai aplikasi dan cari kerusakan fatal, jejak tumpukan, dll. Itu akan memberi Anda petunjuk.

Saya memiliki masalah serupa dengan datang karena react-native-push-notification dan firebase digunakan bersama. Inilah yang saya lakukan setelah berjam-jam mencari tahu:

1) android/app/build.gradle
perbaiki ke insetad versi tertentu +
compile 'com.google.firebase:firebase-core:12.0.1'

2) android/build.gradle
tambahkan yang berikut ini ke allprojects

configurations.all {
            resolutionStrategy { 
                force 'com.google.android.gms:play-services-gcm:12.0.1'
            }
        }

3) CD ke folder Android dari shell dan jalankan pembersihan
$> gradlew clean

react-native-Push-notification menggabungkan properti gradle mereka hari ini .

Firebase sudah mendukungnya.

@Vijay-clustrex @emilklindt Akan membutuhkan lebih banyak informasi untuk dapat membantu. setiap log dihargai

Menggunakan versi terbaru "kompilasi 'com.google. firebase:firebase-core :12.0.1'" menyelesaikan masalah bagi saya.

Seperti yang disarankan oleh @nopedev , solusi bagi saya adalah memaksa resolusi dependensi khusus versi. Saya mengalami masalah dengan react-native-device-info dan react-native-background-geolocation (lihat https://github.com/transistorsoft/react-native-background-geolocation/issues/375).

Di bawah ini adalah konfigurasi yang akhirnya menyelesaikannya untuk saya, yang hanya sedikit modifikasi dari apa yang awalnya dikomentari @nopedev , menambahkan beberapa perpustakaan lagi:

def googlePlayServicesVersion = '11.8.0'

configurations.all {
  resolutionStrategy {
    // react-native-admob
    force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion"
    // react-native-maps
    force "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
    // react-native-onesignal
    force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
    // react-native-google-sign-in
    force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
    // react-native-device-info
    force "com.google.android.gms:play-services-basement:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-iid:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-iid-license:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-gcm-license:$googlePlayServicesVersion"
    // react-native-background-geolocation
    force "com.google.android.gms:play-services-basement-license:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-tasks:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-tasks-license:$googlePlayServicesVersion"
    force "com.google.android.gms:play-services-base-license:$googlePlayServicesVersion"
  }

  ...
}

Ini tampaknya diperbaiki setelah Google meluncurkan tambalan ( 12.0.1 ) ke Layanan Play dan Firebase.

Semua,

Sementara memaksa versi GPS/GMS menjadi lebih rendah dari v12 berfungsi (seperti yang disarankan di atas) saya tidak berpikir ini adalah solusi jangka panjang dan Anda akhirnya tidak akan dapat menggunakan beberapa perpustakaan yang tetap up to date dengan versi GMS seperti sebagai diri kita sendiri ( react-native-firebase ).

Pendekatan yang saya sarankan adalah memperbarui proyek Android Anda untuk menggunakan pembungkus gradle terbaru dan alat pembangunan Android - sebagian besar proyek jauh di belakang versi bijaksana dalam hal ini.

Berikut beberapa instruksi yang diambil dari log perubahan React Native Firebase v4 kami yang akan membantu Anda melakukan ini:

## Meningkatkan gradle dan alat build Android

Karena beberapa perubahan yang mengganggu di lib Android v12, Anda harus memutakhirkan versi Gradle Anda ke setidaknya v4.4 dan membuat beberapa penyesuaian lain sebagai berikut:

1) Dalam android/gradle/wrapper/gradle-wrapper.properties , perbarui URL gradle menjadi gradle-4.4-all.zip
2) Di android/build.gradle periksa apakah Anda memiliki google() ditentukan di bagian repositori buildScript:

buildscript {
    repositories {
        jcenter()
        google()  // <-- Check this line exists
        ...
    }

3) Dalam android/build.gradle perbarui alat pembuatan Android ke versi 3.1.0 :

classpath 'com.android.tools.build:gradle:3.1.0'

4) Dalam android/app/build.gradle perbarui semua pernyataan compile menjadi implementation , mis

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

5) Dalam android/app/build.gradle , perbarui semua dependensi firebase dan gms ke 12.0.1


Menambal modul RN yang kedaluwarsa

Di dunia yang ideal, semua modul RN selalu diperbarui pada dependensi bertahap dan semacamnya; tetapi di dunia nyata sebagian besar mungkin tidak pernah memutakhirkan versi GMS/file build gradle mereka, ini bukan akhir dari baris. Anda dapat berhasil menambal modul mana pun yang ingin Anda ubah versi/definisi ketergantungannya (misalnya untuk menggunakan sintaks api/implementasi/compileOnly gradle baru) menggunakan modul patch-package npm.

Ini cukup mudah:

  1. Ubah/perbaiki modul yang bermasalah di dalam direktori node_modules dan buat semuanya berhasil dibuat bersama
  2. Setelah proyek Android Anda dibangun dan berjalan dengan lancar, jalankan patch-package modulename-1 modulename-2 etc di root proyek Anda dan itu akan membuat direktori tambalan di proyek Anda (berisi semua perubahan yang Anda buat di node_modules untuk setiap paket yang Anda tentukan di memerintah)
  3. Komit direktori baru ini sebagai bagian dari repo git Anda
  4. Tambahkan patch-package sebagai skrip post-install pada package.json dan itu akan otomatis ditambal setelah setiap npm/yarn install
  5. Keuntungan

Tautan untuk referensi:
https://github.com/invertase/react-native-firebase/blob/master/android/build.gradle#L83
https://github.com/invertase/react-native-firebase/blob/master/tests/android/app/build.gradle#L75

Tunggu, apakah RN mendukung gradle terbaru sekarang? Saya tidak punya apa-apa selain masalah menggunakan v3.

Hai, sepertinya tidak ada aktivitas tentang masalah ini baru-baru ini. Apakah masalah sudah diperbaiki, atau masih membutuhkan perhatian masyarakat? Masalah ini dapat ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "Untuk Diskusi" atau "Masalah pertama yang bagus" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.

Menutup masalah ini setelah lama tidak aktif. Jika masalah ini masih ada di rilis terbaru, jangan ragu untuk membuat masalah baru dengan informasi terkini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat