Dependencies are up-to-date but Gradle thinks not

余生颓废 提交于 2020-01-03 13:40:10

问题


Why does Gradle give this error about dependencies when I have used the latest and same version? This has only just started today and I'm lost as to how to fix this:

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 28.0.0, 26.1.0. Examples include com.android.support:animated-vector-drawable:28.0.0 and com.android.support:support-media-compat:26.1.0

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:animated-vector-drawable-v7:28.0.0'
    implementation 'com.android.support:support-media-compat-v7:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
}

ʍѳђઽ૯ท's suggestion

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not generate a proxy class for class com.android.build.gradle.tasks.BuildArtifactReportTask.

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

* Get more help at https://help.gradle.org

BUILD FAILED in 2s

回答1:


Maybe this is because support library version 28 hasn't any library that call it

implementation 'com.android.support:animated-vector-drawable-v7:28.0.0'

or

implementation 'com.android.support:support-media-compat-v7:28.0.0'

Or Maybe this is because you are using support library version 28, but targetSdkVersion is lower than version 28.

(in Android Studio v:3.1.4)If you would like to add another library to your project, use the following URL

(from toolbar) file \ Project Structure ... \ (from left window : under modules) app \ Dependencies \ (use green plus)

This work for me : Add this lines in build.gradle (Project Gradle)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "your project"
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    buildToolsVersion '28.0.3'
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'junit:junit:4.12'
    implementation 'com.android.support:support-v13:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:mediarouter-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:2.0.0-alpha2'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:support-annotations:28.0.0'
    implementation 'com.android.support:design:28.0.0'
}



回答2:


Doing ./gradlew app:dependencies on the terminal will show the different dependenices with their versions. To fix this easily, just add the dependency which has old and not has the same version (as the other related) dependencies in your Build.gradle.

If you hold on the error, it will show which dependency is old and then you can see the differences between the versions.

As an example, if you add this as the newest version like the other related dependencies, it will be fixed:

implementation 'com.android.support:support-media-compat:28.0.0' // just like the other related dependencies versions.

In your case, one of them is using 26.1.0 version:

Found versions 28.0.0, 26.1.0




回答3:


one could also exclude version 26.1.0 from a dependency, but here's how to enforce 28.0.0:

configurations.all() {
    resolutionStrategy.force "com.android.support:support-media-compat:28.0.0"
}

this might be coming from:

implementation "com.google.android.gms:play-services-base:15.0.1"
implementation "com.google.android.gms:play-services-maps:15.0.1"

run ./gradlew app:dependencies from the project's root directory to see where it comes from.



来源:https://stackoverflow.com/questions/52571014/dependencies-are-up-to-date-but-gradle-thinks-not

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!