更新到android studio 2.3后,我收到了这个错误消息。我知道这只是一个提示,因为应用程序运行正常,但这真的很奇怪。

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.1.1、24.0.0。示例包括com.android.support:animatedvector-drawable:25.1.1和com.android.com/support:mediarouter-v7:24.0.0

我的成绩:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.android.support:support-v4:25.1.1'
    compile 'com.android.support:design:25.1.1'
    compile 'com.android.support:recyclerview-v7:25.1.1'
    compile 'com.android.support:cardview-v7:25.1.1'
    compile 'com.google.android.gms:play-services-maps:10.2.0'
    compile 'com.google.android.gms:play-services:10.2.0'

    compile 'io.reactivex.rxjava2:rxjava:2.0.1'
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    compile 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
    compile 'com.blankj:utilcode:1.3.6'
    compile 'com.orhanobut:logger:1.15'
    compile 'com.facebook.stetho:stetho:1.4.2'

    provided 'com.google.auto.value:auto-value:1.2'
    annotationProcessor 'com.google.auto.value:auto-value:1.2'
    annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'

    compile 'com.mikepenz:iconics-core:2.8.2@aar'
    compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
    compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
    compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
    compile 'com.github.GrenderG:Toasty:1.1.1'
    compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
    compile 'com.github.MAXDeliveryNG:slideview:1.0.0'

    compile 'com.facebook.fresco:fresco:1.0.1'
    compile 'com.github.bumptech.glide:glide:3.7.0'

    compile 'com.google.maps.android:android-maps-utils:0.4.4'
    compile 'com.github.jd-alexander:library:1.1.0'
}

当前回答

花了大约5个小时后,这个解决方案对我有效。。

如果您还没有:

xmlns:tools="http://schemas.android.com/tools"

例子:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.winanainc"
    android:versionCode="3"
    android:versionName="1.2"
    xmlns:tools="http://schemas.android.com/tools">

然后在应用程序中添加这个元标记以覆盖构建工具版本,在本例中,我选择了25.3.1版本

<application>
   ...
   ..
    <meta-data
        tools:replace="android:value"
        android:name="android.support.VERSION"
        android:value="25.3.1" />
</application>

其他回答

只需添加以下内容:

compile 'com.android.support:mediarouter-v7:25.2.0'

针对新SDK版本更新

compile 'com.android.support:mediarouter-v7:28.0.0-alpha3'

将以下实现语句添加到依赖项部分。(如果它显示一些App Compat库不匹配错误,那么我们必须重新实现所有不匹配的支持库。我们可以通过将光标放在错误上找到不匹配的库。按快捷键ctrl+F1在android studio中显示完整的详细信息。)

implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:asynclayoutinflater:28.0.0'
implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

使用变量:执行以下操作将使您更容易确保对所有库使用相同的版本

dependencies {

    ext {
        support_library_version = '25.2.0'
        google_play_services_version = '10.2.0'
    }

    //#####################################################################
    //          Support Library
    //#####################################################################
    compile "com.android.support:appcompat-v7:${support_library_version}"
    compile "com.android.support:palette-v7:${support_library_version}"
    compile "com.android.support:design:${support_library_version}"

    //#####################################################################
    //          Google Play Services
    //#####################################################################
    compile "com.google.android.gms:play-services-auth:${google_play_services_version}"
    compile "com.google.android.gms:play-services-ads:${google_play_services_version}"
    compile "com.google.android.gms:play-services-analytics:${google_play_services_version}"

    //#####################################################################
    //          Firebase
    //#####################################################################
    compile "com.google.firebase:firebase-core:${google_play_services_version}"
    compile "com.google.firebase:firebase-auth:${google_play_services_version}"
    compile "com.google.firebase:firebase-messaging:${google_play_services_version}"

有关Google建议您如何处理此版本控制的更多信息,请参阅本文:https://developer.android.com/studio/build/index.html#top-水平,水平

正如您已经看到了上面的所有答案和评论,但这个答案是为了澄清一些新开发人员可能不容易得到的东西。

./gradlew-q依赖项app:依赖项--配置编译

毫无疑问,上面这条线将挽救你的生命,但如何从上面这条线上的结果中得到准确的点。

当您从上面的命令获得所有依赖关系图或列表时,您必须搜索代码中获得的冲突版本号。请参见下图。

在上面的图片中,您可以看到23.4.0正在创建问题,但这在我们的grade文件中找不到。因此,现在这个版本号(23.4.0)将保存我们。当我们有了这个编号时,我们将在上面命令结果的结果中找到这个编号,并直接在gradle文件中导入该依赖项。请参见下图以获得清晰的视图。

您可以清楚地看到com.android.support:cardview-v7:23.4.0和com.android.com/support:customtabs:23.4.0正在使用导致问题的版本。现在只需从依赖项中复制这些行列出并在gradle文件中显式使用,但带有更新的版本链接

实现“com.android.support:cardview-v7:26.1.0”实现“com.android.support:customtabs:26.1.0”

您已经定义了要用24.0.0版而不是25.1.1版编译的任何其他依赖项。请将所有依赖项的版本设置为与25.1.1相同。