简体   繁体   English

Android 依赖项“com.google.android.gms:play-services-stats”对于编译 (16.0.1) 和运行时 (17.0.0) 类路径具有不同的版本

[英]Android dependency 'com.google.android.gms:play-services-stats' has different version for the compile (16.0.1) and runtime (17.0.0) classpath

Yesterday my app was building correctly and today without changing anything I'm not able to build anymore, I'm getting this error:昨天我的应用程序构建正确,今天没有更改我无法构建的任何内容,我收到此错误:

Android dependency 'com.google.android.gms:play-services-stats' has >different version for the compile (16.0.1) and runtime (17.0.0) >classpath. Android 依赖项 'com.google.android.gms:play-services-stats' 对于编译 (16.0.1) 和运行时 (17.0.0) > 类路径具有不同的版本。 You should manually set the same version via >DependencyResolution您应该通过 >DependencyResolution 手动设置相同的版本

I tried to bypass this with "com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true" and clean the project many times, but the error is still here.我试图用“com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true”绕过这个并多次清理项目,但错误仍然存​​在。

My app/build.gradle file :我的 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'

My build.gradle:我的 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")
}

Does someone know how to correct or bypass this version check ?有人知道如何更正或绕过此版本检查吗? Ask me if you need more informations.问我是否需要更多信息。

This comment on github provides the answer to your question (and mine): github 上的这条评论为您的问题(和我的)提供了答案:

A dependency ( react-native-device-info in this case) was using the latest version of one of its dependencies instead of a fixed/pinned version.依赖项(在本例中为react-native-device-info )正在使用其依赖项之一的最新版本,而不是固定/固定版本。 When a new version of google services was released yesterday , it caused the build to pull in the new version for device-info , thereby causing the conflict with other dependencies that correctly pin the version they need.昨天发布新版本的 google services 时,它导致构建为device-info拉入新版本,从而导致与正确固定所需版本的其他依赖项发生冲突。

The solution is to do what is explained in the linked post in your android/app/build.gradle :解决方案是按照您的android/app/build.gradle中的链接帖子中的说明进行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"

and possibly replace react-native-device-info with any other dependency that may have the same problem (they would include a line like implementation "com.google.android.gms:play-services-gcm:+" which depends on whatever is the latest version of google gcm).并可能将react-native-device-info替换react-native-device-info可能有相同问题的任何其他依赖项(它们将包括类似于implementation "com.google.android.gms:play-services-gcm:+" ,这取决于任何谷歌 gcm 的最新版本)。

Add in the file: android/app/build.gradle在文件中添加:android/app/build.gradle

android {
    ...
    dependencies {
        implementation 'com.google.android.gms:play-services-maps:17.0.0'
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 添加实施后 'com.google.android.gms:play-services-ads:17.0.0 应用程序运行错误 - After add implementation 'com.google.android.gms:play-services-ads:17.0.0 app running error 使用编译时提高Android中的API级别('com.google.android.gms:play-services:+') - Increase API level in Android when using compile ('com.google.android.gms:play-services:+') 更新为实现“ com.google.android.gms:play-services-ads:15.0.2”和类路径“ com.google.gms:google-services:3.3.0”后,出现Gradle错误 - Gradle error after updating to implementation 'com.google.android.gms:play-services-ads:15.0.2' and classpath 'com.google.gms:google-services:3.3.0' 使用Maven Android失败:com.google.android.gms的POM:google-play-services:jar:13.0.0缺失,没有相关信息可用 - Failure with Maven Android : The POM for com.google.android.gms:google-play-services:jar:13.0.0 is missing, no dependency information available 如何更新com.google android.gms:play-services-auth:16.0.1? - How to update com.google android.gms:play-services-auth:16.0.1? 当我添加编译'com.google.android.gms:play-services-wearable:6.5.87'时,gradle构建失败 - My gradle build fails when I add compile 'com.google.android.gms:play-services-wearable:6.5.87' 升级到'com.google.android.gms:play-services-ads:18.1.0'后Android编译错误 - Android compilation error after upgrading to 'com.google.android.gms:play-services-ads:18.1.0' Android Studio:无法解决:com.google.android.gms:play-services:fp9.0.0 - Android Studio: Failed to resolve: com.google.android.gms:play-services:fp9.0.0 libGDX + com.google.android.gms:play-services:7.0.0:android:dexDebug - libGDX + com.google.android.gms:play-services:7.0.0 : android:dexDebug Android Studio找不到com.google.android.gms:play-services - Android Studio Could not find com.google.android.gms:play-services
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM