首页 > 解决方案 > ... 'app' 中的 android 项目已解决的 Google Play 服务库依赖项依赖于另一个确切版本

问题描述

我有一个运行良好的应用程序,但今天它在构建项目时出错。我花了一整天的时间从堆栈中尝试了太多的解决方案。没有任何工作。

我有以下应用程序-> build.gradle

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

android {
    compileSdkVersion 29
    defaultConfig {
        applicationId "com.myapp.immuno"
        minSdkVersion 16
        targetSdkVersion 29
        versionCode 1
        versionName "2.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            aaptOptions.cruncherEnabled = false // here
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.navigation:navigation-fragment:2.1.0'
    implementation 'androidx.navigation:navigation-ui:2.1.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    implementation 'com.google.code.gson:gson:2.8.5'

    // Firebase libraries
    implementation 'com.google.firebase:firebase-core:17.2.1'
    implementation 'com.google.firebase:firebase-messaging:20.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.2.1'
    implementation 'com.google.android.gms:play-services-auth:17.0.0'
    implementation 'com.google.firebase:firebase-auth:19.2.0'
    implementation 'com.google.firebase:firebase-crash:16.2.1'
    implementation 'com.google.firebase:firebase-database:19.2.0'
    implementation 'com.google.firebase:firebase-storage:19.1.0'

    // circular image
    implementation 'de.hdodenhof:circleimageview:2.2.0'

    // RecyclerView
    //noinspection GradleCompatible
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    //FacebookSdk
    //implementation 'com.facebook.android:facebook-android-sdk:4.37.0'
    //implementation 'com.facebook.android:facebook-login:4.37.0'

    // volley library
    implementation 'com.android.volley:volley:1.1.1'

    implementation 'com.google.android.gms:play-services:17.0.0'
    implementation 'me.dm7.barcodescanner:zxing:1.9.8'

    // Glide library to load images smoothly
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

    // To get date and time
    implementation 'net.danlew:android.joda:2.10.1.1'

    // external libraries for mail
    implementation files('libs/activation.jar')
    implementation files('libs/additionnal.jar')
    implementation files('libs/mail.jar')

    // Add the Fabric Crashlytics plugin.
    //classpath 'io.fabric.tools:gradle:1.31.2'
    // Add the Firebase Crashlytics dependency.
    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'


    }

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

build.gradle 是

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath 'com.google.gms:google-services:4.3.3'
        classpath 'io.fabric.tools:gradle:1.31.2'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

在构建项目时我收到了这个错误

错误:在项目“应用程序”中,已解析的 Google Play 服务库依赖项依赖于另一个确切版本(例如“[20.0.2]”,但未解析为该版本。库表现出的行为未知。

依赖失败:com.google.firebase:firebase-messaging:20.1.0 -> com.google.firebase:firebase-iid@[20.0.2],但 firebase-iid 版本为 19.0.0。

The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto com.google.firebase:firebase-iid@{strictly 19.0.0}
-- Project 'app' depends onto com.google.firebase:firebase-core@17.2.1
-- Project 'app' depends onto com.google.firebase:firebase-crash@16.2.1
-- Project 'app' depends onto com.google.firebase:firebase-messaging@{strictly 20.1.0}
-- Project 'app' depends onto com.google.firebase:firebase-messaging@20.1.0
-- Project 'app' depends onto com.google.firebase:firebase-crash@{strictly 16.2.1}
-- Project 'app' depends onto com.google.firebase:firebase-analytics@17.2.1
-- Project 'app' depends onto com.google.firebase:firebase-core@{strictly 17.2.1}
-- Project 'app' depends onto com.google.firebase:firebase-analytics@{strictly 17.2.1}
-- Project 'app' depends onto com.google.android.gms:play-services-measurement-api@{strictly 17.2.1}

对于扩展调试信息,使用 ./gradlew --info :app:assembleDebug 从命令行执行 Gradle 以查看工件的依赖路径。此错误消息来自 google-services Gradle 插件,在https://github.com/google/play-services-plugins报告问题并通过将“googleServices { disableVersionCheck = false }”添加到您的 build.gradle 文件来禁用。

标签: androidfirebasegradle

解决方案


这是我执行的步骤并解决了问题:

  1. com.google.firebase:firebase-messaging:20.1.0改为com.google.firebase:firebase-messaging:20.0.1
  2. 同步梯度
  3. 并回滚更改(将20.0.1更改为20.1.0
  4. 如果同步并运行应用程序,您将看到该问题已解决!

我知道这不是正确的方法,但解决了我的问题。任何正确的都应该被替换。


推荐阅读