java react-native google-play-services

java - La dependencia de Android ''com.google.android.gms: play-services-stats'' tiene una versión diferente para el classpath compile(16.0.1) y runtime(17.0.0)



react-native google-play-services (1)

Este comentario en github proporciona la respuesta a tu pregunta (y la mía):

Una dependencia ( react-native-device-info en este caso) estaba usando la última versión de una de sus dependencias en lugar de una versión fija / fija. Cuando ayer se lanzó una nueva versión de los servicios de Google, la compilación generó la nueva versión de device-info , lo que provocó el conflicto con otras dependencias que fijan correctamente la versión que necesitan.

La solución es hacer lo que se explica en la publicación vinculada en tu android/app/build.gradle :

implementation(project(":react-native-device-info"), { exclude group: "com.google.android.gms" }) implementation "com.google.android.gms:play-services-gcm:16.0.0"

y posiblemente reemplace react-native-device-info con cualquier otra dependencia que pueda tener el mismo problema (incluirían una línea como la implementation "com.google.android.gms:play-services-gcm:+" que depende de lo que sea la última versión de google gcm).

Ayer mi aplicación se estaba construyendo correctamente y hoy, sin cambiar nada, ya no puedo compilar, recibo este error:

La dependencia de Android ''com.google.android.gms: play-services-stats'' tiene> una versión diferente para compile (16.0.1) y runtime (17.0.0)> classpath. Debe configurar manualmente la misma versión a través de> DependencyResolution

Intenté omitir esto con "com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true" y limpiar el proyecto muchas veces, pero el error sigue aquí.

Mi archivo app / build.gradle:

apply plugin: "com.android.application" 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" /** * Set this to true to create two separate APKs instead of one: * - An APK that only works on ARM devices * - An APK that only works on x86 devices * The advantage is the size of the APK is reduced by about 4MB. * Upload all the APKs to the Play Store and people will download * the correct one based on the CPU architecture of their device. */ def enableSeparateBuildPerCPUArchitecture = false /** * Run Proguard to shrink the Java bytecode in release builds. */ def enableProguardInReleaseBuilds = false android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.yapero" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled true versionCode 743 versionName "1.74" ndk { abiFilters "armeabi-v7a", "x86" } versionNameSuffix ''3'' } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include "armeabi-v7a", "x86", "arm64-v8a" } } buildTypes { release { minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } packagingOptions { exclude ''META-INF/main.kotlin_module'' exclude ''META-INF/-no-jdk.kotlin_module'' } dexOptions { javaMaxHeapSize "4g" } // 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, "arm64-v8a": 3] 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 } } } } dependencies { implementation project('':@segment_analytics-react-native'') implementation project('':react-native-webview'') implementation project('':react-native-version-check'') implementation project('':react-native-firebase'') implementation(project('':react-native-firebase'')) { transitive = false } implementation(''com.crashlytics.sdk.android:crashlytics:2.9.5@aar'') {transitive = true} //implementation project('':react-native-version-check'') implementation project('':react-native-maps'') implementation project('':react-native-intercom'') implementation ''io.intercom.android:intercom-sdk-base:5.+'' implementation ''io.intercom.android:intercom-sdk-fcm:5.+'' implementation project('':react-native-fbsdk'') implementation project('':react-native-device-info'') implementation project('':react-native-appsflyer'') implementation project('':react-native-text-input-reset'') implementation project('':react-native-linear-gradient'') implementation project('':react-native-fast-image'') implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" implementation "com.facebook.react:react-native:+" // From node_modules implementation "com.google.android.gms:play-services-base:16.1.0" implementation "com.google.firebase:firebase-core:16.0.8" implementation "com.google.firebase:firebase-auth:16.2.1" implementation "com.google.firebase:firebase-firestore:17.1.5" implementation "com.google.firebase:firebase-messaging:17.5.0" implementation ''me.leolin:ShortcutBadger:1.1.21@aar'' implementation ''com.android.support:multidex:1.0.0'' } // 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''

Mi build.gradle:

buildscript { ext { buildToolsVersion = "28.0.2" minSdkVersion = 16 compileSdkVersion = 28 targetSdkVersion = 27 supportLibVersion = "28.0.0" } repositories { google() jcenter() maven { url ''https://maven.fabric.io/public'' } } dependencies { classpath ''com.android.tools.build:gradle:3.2.1'' classpath ''com.google.gms:google-services:4.2.0'' classpath ''io.fabric.tools:gradle:1.25.4'' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { mavenLocal() google() jcenter() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "$rootDir/../node_modules/react-native/android" } } } task wrapper(type: Wrapper) { gradleVersion = ''4.7'' distributionUrl = distributionUrl.replace("bin", "all") }

¿Alguien sabe cómo corregir u omitir esta versión? Pregúntame si necesitas más información.