所有com.android.support库必须使用完全相同的版本规范

时间:2017-02-21 17:35:02

标签: android android-studio build.gradle android-studio-3.0 android-studio-2.3

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

  

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

enter image description here

我的朋友:

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'
}

53 个答案:

答案 0 :(得分:859)

您可以使用以下解决方案之一解决此问题:

更新

从Android studio 3.0开始,它变得更加容易,因为它现在显示了更有用的提示,所以我们只需要遵循这个提示。
例如: 1]

  

所有com.android.support库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。发现   版本27.0.2,26.1.0。例子包括   com.android.support:animated-vector-drawable:27.0.2和   com.android.support:customtabs:26.1.0

     

有一些库,或工具和库的组合   是不兼容的,或可能导致错误。一个这样的不兼容性是   使用不支持的Android支持库版本进行编译   最新版本(或特别是低于您的版本的版本   targetSdkVersion。)

<强>解决方案:
使用旧版本明确添加库,但使用新版本号 在我的情况下com.android.support:customtabs:26.1.0所以我需要添加:

implementation "com.android.support:customtabs:27.0.2"  

ie:从第二项获取库,并使用第一项中的版本号实现它。

注意:不要忘记现在按下同步,以便gradle可以重建依赖图并查看是否还有冲突。

<强>解释
您可能会对错误消息感到困惑,因为不要使用customtabs所以我如何发生冲突!!
好吧..你没有直接使用它,但是你的一个库在内部使用旧版customtabs,所以你需要直接询问它。

如果您想知道哪些库负责旧版本并且可能要求作者更新他的lib,运行Gradle依赖性报告,请参阅旧答案以了解如何。

请注意

旧答案:

CommonsWare answer的启发:

运行Gradle依赖关系报告以查看完整树的内容 依赖是。

从那里,您将看到哪个库要求提供不同版本的Android支持库。 无论它要求什么,你都可以直接向它索要 25.2.0版本或使用Gradle的其他冲突解决方法来获得相同的版本。

更新

从Gradle插件版本开始:3.0 compile已替换为implementationapi,请参阅this answer了解差异。

因此改为使用:

./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

或用于windows cmd:

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

并搜索冲突的版本。

对我来说,删除com.google.android.gms:play-services:10.2.0

后错误消失了

仅包含com.google.android.gms:play-services-location:10.2.0com.google.android.gms:play-services-maps:10.2.0,因为它们是我使用的唯一两种播放服务。

我认为gms:play-services依赖于支持库的一些旧组件,因此我们需要自己明确添加它们。

适用于旧版本的AS 3.0。

执行命令

./gradlew -q dependencies <module-name>:dependencies --configuration implementation

示例:

./gradlew -q dependencies app:dependencies --configuration implementation

如果有人在新的gradle插件中知道更好的方法,请告诉我。

答案 1 :(得分:201)

  1. 转到文件系统上的project/.idea/libraries文件夹,查看哪些库不同。
  2. 您必须在build.gradle文件中手动包含这些具有相同版本的库。
  3. 然后,同步您的项目。
  4. E.g:

    compile 'com.android.support:appcompat-v7:25.2.0'
    
    // Wrong library version found on 1st point
    compile 'com.android.support:customtabs:25.2.0'
    

答案 2 :(得分:146)

对于所有情况,不仅仅是针对这些版本或库:

注意关于错误的小信息窗口,它说明你需要更改和添加的示例

在这种情况下:

  

发现版本25.1.1,24.0.0。示例包括com.android.support:animated-vector-drawable:25.1.1和   com.android.support:mediarouter-v7:24.0.0

您的

  

com.android.support:animated-vector-drawable:25.1.1

是版本25.1.1 ,您的

  

com.android.support:mediarouter-v7:24.0.0

是版本24.0.0 ,因此您必须添加具有相同版本的mediarouter:

com.android.support:mediarouter-v7:25.1.1

对于小信息窗口所说的每个示例都这样做,在这种情况下 所有没有版本25.1.1的库。

修复指定的库后,您必须同步草图,以查看您需要更改的下一个库和包。

重要:

如果您没有明确地使用一个或多个指定的库并且它给您错误,则意味着它正由另一个库在内部使用,无论如何都要显式编译它。

您还可以使用其他方法来查看实际编译的所有库的版本差异(例如运行gradle依赖关系报告或转到库文件),真正的目标是编译所有您使用相同版本的库

答案 3 :(得分:94)

将它添加到build.gradle(Module:app)的最后:

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '25.3.1'
        }
     }

   }
}

确保将'25 .3.1'替换为您要用于所有依赖项的android支持库的版本,它不应低于您的complile sdk版本

比重新同步gradle

答案 4 :(得分:87)

解决问题的最佳方法是实施android studio建议的所有'com.android.support:...'

(与使用哪个支持版本无关-27.1.1、28.0.0等。)

将光标置于错误行,例如:

implementation 'com.android.support:appcompat-v7:28.0.0'

android studio会提示您哪个'com.android.support:...'与版本不同 'com.android.support:appcompat-v7:28.0.0'

示例

  

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本28.0.0、27.1.0、27.0.2。示例包括com.android.support:animated-vector-drawable:28.0.0和com.android.support:exifinterface:27.1.0

因此添加com.android.support:animated-vector-drawable:28.0.0  &com.android.support:exifinterface:28.0.0。 现在同步gradle文件。

一步一步尝试实施所有建议的'com.android.support:...',直到此行implementation 'com.android.support:appcompat-v7:28.0.0'中没有错误

就我而言,我添加了

implementation 'com.android.support:appcompat-v7:28.0.0'

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

所有这些依赖关系...对于其他人可能有所不同。

答案 5 :(得分:54)

更新到Android Studio 2.3后我遇到了完全相同的问题

将此行添加到依赖项解决了我的问题:

compile 'com.android.support:customtabs:25.2.0'

答案 6 :(得分:44)

A)运行gradle dependencies./gradlew dependencies

B)查看您的树并确定哪些依赖项为您无法控制的依赖项指定了不同的支持库版本。

我没有意识到如果依赖项完全由您自己的代码直接使用,也会显示此警告。在我的例子中,Facebook指定了一些我没有使用的支持库,你可以在下面看到大多数这些依赖项被我自己的25.2.0规范覆盖,用 - &gt;表示。 X.X.X(*)符号。卡片视图和自定义选项卡库没有被任何人覆盖,所以即使我不使用它们,我也需要自己要求25.2.0。

+--- com.facebook.android:facebook-android-sdk:4.17.0
|    +--- com.android.support:support-v4:25.0.0 -> 25.2.0 (*)
|    +--- com.android.support:appcompat-v7:25.0.0 -> 25.2.0 (*)
|    +--- com.android.support:cardview-v7:25.0.0
|    |    \--- com.android.support:support-annotations:25.0.0 -> 25.2.0
|    +--- com.android.support:customtabs:25.0.0
|    |    +--- com.android.support:support-compat:25.0.0 -> 25.2.0 (*)
|    |    \--- com.android.support:support-annotations:25.0.0 -> 25.2.0
|    \--- com.parse.bolts:bolts-android:1.4.0 (*)

如果gradle已经警告过你并给你举例......

  

示例包括com.android.support:animated-vector-drawable:25.1.1   和com.android.support:mediarouter-v7:24.0.0

...如果您为较低版本引入一些grep突出显示更加容易,因为gradle dependencies可能非常详细:

./gradlew dependencies | grep --color -E 'com.android.support:mediarouter-v7|$'

答案 7 :(得分:31)

使用变量:执行以下操作可以更轻松地确保您对所有库使用相同的版本

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-level

答案 8 :(得分:25)

我只想补充一下:

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

Updated用于新的SDK版本

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

答案 9 :(得分:19)

如果appcompat上有相同的错误

implementation 'com.android.support:appcompat-v7:27.0.1'

然后添加design解决了它。

implementation 'com.android.support:appcompat-v7:27.0.1'
implementation 'com.android.support:design:27.0.1'

对我来说,添加

implementation 'de.mrmaffen:vlc-android-sdk:2.0.6'

包含appcompat-v7:23.1.1

  

.idea / libraries

没有vlc,仅appcompat就足够了。

答案 10 :(得分:18)

正如您已经看到上面的所有答案和评论,但这个答案是为了清除新开发人员可能无法轻易获得的内容。

./ gradlew -q dependencies app:dependencies --configuration compile

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

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

enter image description here

在上图中您可以看到 23.4.0 正在创建问题,但我们无法在gradle文件中找到。所以现在这个版本号(23.4.0)将节省我们。当我们有这个数字时,我们会在上面的命令结果的结果中找到这个数字,并直接在我们的gradle文件中直接导入该依赖项。请参阅下图以获得清晰的视图。

您可以清楚地看到 com.android.support:cardview-v7:23.4.0 com.android.support:customtabs:23.4.0 正在使用正在创建问题的版本。现在只需从依赖中复制这些行 列表并在我们的gradle文件中明确使用,但使用更新的版本链接

实施&#34; com.android.support:cardview-v7:26.1.0&#34;     实施&#34; com.android.support:customtabs:26.1.0&#34;

答案 11 :(得分:15)

解决冲突的另一种方法是强制所有依赖项的正确版本,如下所示:

dependencies {
            configurations.all {
                resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                    if (details.requested.group == 'com.android.support' && details.requested.name == 'support-v4') {
                        details.useVersion "27.0.2"
                    }
                }
    ...
    }

https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html

答案 12 :(得分:12)

使用support-v13而不是support-v4

compile 'com.android.support:support-v13:25.2.0'

答案 13 :(得分:10)

将它们添加到应用程序级别依赖项

implementation 'com.android.support:asynclayoutinflater:28.0.0'
implementation 'com.android.support:exifinterface: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'

答案 14 :(得分:9)

我的问题与你的问题类似。 这里存在错误!

compile 'com.android.support:appcompat-v7:25.3.0'

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。发现版本25.3.0,24.0.0。示例包括'com.android.support:animated-vector-drawable:25.3.0'和'com.android.support:mediarouter-v7:24.0.0'

看到这个 示例包括'com.android.support:animated-vector-drawable:25.3.0'和'com.android.support:mediarouter-v7:24.0.0'

只需在依赖项中添加这些代码,确保版本相同。

compile 'com.android.support:animated-vector-drawable:25.3.0'
compile 'com.android.support:mediarouter-v7:25.3.0'

答案 15 :(得分:9)

我有这个:

dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:27.1.1'
   implementation 'com.android.support:design:27.1.1'
   implementation 'com.android.support:support-v4:27.1.1'
   implementation 'com.google.firebase:firebase-auth:12.0.1'
   implementation 'com.google.firebase:firebase-firestore:12.0.1'
   implementation 'com.google.firebase:firebase-messaging:12.0.1'
   implementation 'com.google.android.gms:play-services-auth:12.0.1'
   implementation'com.facebook.android:facebook-login:[4,5)'
   implementation 'com.twitter.sdk.android:twitter:3.1.1'
   implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
   implementation 'org.jetbrains:annotations-java5:15.0'
   implementation project(':vehiclesapi')
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.1'
   androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

并收到此错误: enter image description here

解决方案很简单 - 主要的依赖关系都是正确的,所以叶子 - 任何第三方依赖。一个接一个地删除,直到找到罪魁祸首,结果是facebook!它使用Android支持库的27.0.2版本。我试图添加cardview版本27.1.1,但是这个解决方案仍然不够简单。

dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:27.1.1'
   implementation 'com.android.support:design:27.1.1'
   implementation 'com.android.support:support-v4:27.1.1'
   implementation 'com.google.firebase:firebase-auth:12.0.1'
   implementation 'com.google.firebase:firebase-firestore:12.0.1'
   implementation 'com.google.firebase:firebase-messaging:12.0.1'
   implementation 'com.google.android.gms:play-services-auth:12.0.1'
   implementation('com.facebook.android:facebook-login:[4,5)'){
       // contains com.android.support:v7:27.0.2, included required com.android.support.*:27.1.1 modules
    exclude group: 'com.android.support'
   }
   implementation 'com.android.support:cardview-v7:27.1.1' // to replace facebook sdk's cardview-v7:27.0.2.
   implementation 'com.twitter.sdk.android:twitter:3.1.1'
   implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
   implementation 'org.jetbrains:annotations-java5:15.0'
   implementation project(':vehiclesapi')
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.1'
   androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

答案 16 :(得分:9)

在使用编译compile 'com.google.android.gms:play-services:10.2.4'添加'com.android.support:appcompat-v7:25.3.1'后,我收到了同样的错误。

添加animated-vector-drawablemediarouter libs解决了问题。

compile 'com.google.android.gms:play-services:10.2.4'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:animated-vector-drawable:25.3.1'
compile 'com.android.support:mediarouter-v7:25.3.1'

答案 17 :(得分:8)

升级到android studio 2.3后,我用这两个来解决我的问题

compile 'com.android.support:animated-vector-drawable:25.0.0'
compile 'com.android.support:mediarouter-v7:25.0.0'

答案 18 :(得分:8)

之前我遇到了同样的问题,我得到了解决方案。

我刚刚添加了具有另一个版本但具有相同版本的support:appcompat的库。

例如,您的错误:

  

所有com.android.support库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。发现   版本25.1.1,24.0.0。例子包括   com.android.support:animated-vector-drawable:25.1.1和   com.android.support:mediarouter-v7:24.0.0

*解决方案是编译这些库的版本:

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

- 如果另一个库有同样的问题,而另一个版本只是用你的support:appcompat版本编译它

这解决了我的问题,我希望它可以解决你的问题。

祝福:)

答案 19 :(得分:7)

搜索并合并答案后,此问题的 2018版本对我有用:

1)在导航选项卡上,将其更改为项目视图

2)导航到 [YourProjectName] /。idea / libraries /

3)删除所有以Gradle__com_android_support_ [libraryName]开头的文件

例如: Gradle__com_android_support_animated_vector_drawable_26_0_0.xml

4)在gradle文件中定义一个变量,并使用它替换版本号,例如 $ {variableName}

Def变量:

ext {
    support_library_version = '28.0.0' //use the version of choice
}

使用变量:

implementation "com.android.support:cardview-v7:${support_library_version}"

示例gradle:

dependencies {
    ext {
        support_library_version = '28.0.0' //use the version of choice
    }

    implementation fileTree(include: ['*.jar'], dir: 'libs')

    implementation "com.android.support:animated-vector-drawable:${support_library_version}"
    implementation "com.android.support:appcompat-v7:${support_library_version}"
    implementation "com.android.support:customtabs:${support_library_version}"
    implementation "com.android.support:cardview-v7:${support_library_version}"
    implementation "com.android.support:support-compat:${support_library_version}"
    implementation "com.android.support:support-v4:${support_library_version}"
    implementation "com.android.support:support-core-utils:${support_library_version}"
    implementation "com.android.support:support-core-ui:${support_library_version}"
    implementation "com.android.support:support-fragment:${support_library_version}"
    implementation "com.android.support:support-media-compat:${support_library_version}"
    implementation "com.android.support:appcompat-v7:${support_library_version}"
    implementation "com.android.support:recyclerview-v7:${support_library_version}"
    implementation "com.android.support:design:${support_library_version}"

}

答案 20 :(得分:7)

在此错误的2018年更新中,从项目结构中添加了实现

implementation 'com.android.support:support-v13:28.0.0'

在项目模式下-> 外部库,就我而言,您可以找到问题 我正在使用版本28和我发现的外部库 com.android.support:support-media-compat-26.0.0,这是错误所在。

在实施support v13之后,并且可以正常运行

答案 21 :(得分:6)

我有同样的问题,但是我通过添加解决了这个问题 那三行

implementation 'com.android.support:design:27.1.1'
implementation "com.android.support:customtabs:27.1.1"
implementation 'com.android.support:mediarouter-v7:27.1.1'

现在,一切都正常运行

答案 22 :(得分:6)

我运行了./gradlew tasks --all并检查了与目标版本(25.3.1)不同版本的依赖项。你会得到这样的东西:

app:prepareComAndroidSupportAnimatedVectorDrawable2531Library - Prepare com.android.support:animated-vector-drawable:25.3.1
app:prepareComAndroidSupportAppcompatV72531Library - Prepare com.android.support:appcompat-v7:25.3.1
app:prepareComAndroidSupportCardviewV72531Library - Prepare com.android.support:cardview-v7:25.3.1
app:prepareComAndroidSupportCustomtabs2531Library - Prepare com.android.support:customtabs:25.3.1
app:prepareComAndroidSupportDesign2531Library - Prepare com.android.support:design:25.3.1
app:prepareComAndroidSupportMediarouterV72531Library - Prepare com.android.support:mediarouter-v7:25.3.1
app:prepareComAndroidSupportPaletteV72531Library - Prepare com.android.support:palette-v7:25.3.1
app:prepareComAndroidSupportRecyclerviewV72531Library - Prepare com.android.support:recyclerview-v7:25.3.1
app:prepareComAndroidSupportSupportCompat2531Library - Prepare com.android.support:support-compat:25.3.1
app:prepareComAndroidSupportSupportCoreUi2531Library - Prepare com.android.support:support-core-ui:25.3.1
app:prepareComAndroidSupportSupportCoreUtils2531Library - Prepare com.android.support:support-core-utils:25.3.1
app:prepareComAndroidSupportSupportFragment2531Library - Prepare com.android.support:support-fragment:25.3.1
app:prepareComAndroidSupportSupportMediaCompat2531Library - Prepare com.android.support:support-media-compat:25.3.1
app:prepareComAndroidSupportSupportV42531Library - Prepare com.android.support:support-v4:25.3.1
app:prepareComAndroidSupportSupportVectorDrawable2531Library - Prepare com.android.support:support-vector-drawable:25.3.1
app:prepareComAndroidSupportTransition2531Library - Prepare com.android.support:transition:25.3.1
app:prepareComAndroidVolleyVolley100Library - Prepare com.android.volley:volley:1.0.0
app:prepareComCrashlyticsSdkAndroidAnswers1312Library - Prepare com.crashlytics.sdk.android:answers:1.3.12
app:prepareComCrashlyticsSdkAndroidBeta124Library - Prepare com.crashlytics.sdk.android:beta:1.2.4
app:prepareComCrashlyticsSdkAndroidCrashlytics267Library - Prepare com.crashlytics.sdk.android:crashlytics:2.6.7
app:prepareComCrashlyticsSdkAndroidCrashlyticsCore2316Library - Prepare com.crashlytics.sdk.android:crashlytics-core:2.3.16
app:prepareComFacebookAndroidFacebookAndroidSdk4161Library - Prepare com.facebook.android:facebook-android-sdk:4.16.1
app:prepareComGoogleAndroidGmsPlayServicesAnalytics1026Library - Prepare com.google.android.gms:play-services-analytics:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl1026Library - Prepare com.google.android.gms:play-services-analytics-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuth1026Library - Prepare com.google.android.gms:play-services-auth:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuthBase1026Library - Prepare com.google.android.gms:play-services-auth-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBase1026Library - Prepare com.google.android.gms:play-services-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBasement1026Library - Prepare com.google.android.gms:play-services-basement:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesCast1026Library - Prepare com.google.android.gms:play-services-cast:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesLocation1026Library - Prepare com.google.android.gms:play-services-location:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesMaps1026Library - Prepare com.google.android.gms:play-services-maps:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTagmanagerV4Impl1026Library - Prepare com.google.android.gms:play-services-tagmanager-v4-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTasks1026Library - Prepare com.google.android.gms:play-services-tasks:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalytics1026Library - Prepare com.google.firebase:firebase-analytics:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalyticsImpl1026Library - Prepare com.google.firebase:firebase-analytics-impl:10.2.6
app:prepareComGoogleFirebaseFirebaseAppindexing1024Library - Prepare com.google.firebase:firebase-appindexing:10.2.4
app:prepareComGoogleFirebaseFirebaseCommon1026Library - Prepare com.google.firebase:firebase-common:10.2.6
app:prepareComGoogleFirebaseFirebaseCore1026Library - Prepare com.google.firebase:firebase-core:10.2.6
app:prepareComGoogleFirebaseFirebaseIid1026Library - Prepare com.google.firebase:firebase-iid:10.2.6
app:prepareComGoogleFirebaseFirebaseMessaging1026Library - Prepare com.google.firebase:firebase-messaging:10.2.6
app:prepareComMindorksPlaceholderview027Library - Prepare com.mindorks:placeholderview:0.2.7
app:prepareDebugAndroidTestDependencies
app:prepareDebugDependencies
app:prepareDebugUnitTestDependencies
app:prepareInfoHoang8fAndroidSegmented105Library - Prepare info.hoang8f:android-segmented:1.0.5
app:prepareIoFabricSdkAndroidFabric1316Library - Prepare io.fabric.sdk.android:fabric:1.3.16
app:prepareNoNordicsemiAndroidLog211Library - Prepare no.nordicsemi.android:log:2.1.1
app:prepareNoNordicsemiAndroidSupportV18Scanner100Library - Prepare no.nordicsemi.android.support.v18:scanner:1.0.0

在这种情况下,我的目标是25.3.1,并且在运行此命令时有一些针对不同版本的依赖项。诀窍是识别此列表中针对先前版本的依赖项,并通过在Gradle中导入最新版本的依赖项来覆盖该依赖项。

答案 23 :(得分:6)

以下是修复此警告的流程

<强>的build.gradle

android {
    compileSdkVersion ... // must same version (ex: 26)
    ...
}

dependencies {
    ...
    compile 'any com.android.support... library'  // must same version (ex: 26.0.1)
    compile 'any com.android.support... library'  // must same version (ex: 26.0.1)

    ...
    compile ('a library B which don't use 'com.android.support...' OR use SAME version of 'com.android.support'){
         // do nothing 
    }

    ...
    compile ('a library C which use DIFFERENT 'com.android.support...' (ex:27.0.1) { 
        // By default, if use don't do anything here your app will choose the higher com.android.support... for whole project (in this case it is 27.0.1)

        // If you want to use 26.0.1 use
        exclude group: 'com.android.support', module: '...' (ex module: 'appcompat-v7') 
        exclude group: 'com.android.support', module: 'another module'
        ...

        // If you want to use 27.0.1 do 
        Upgrade `compileSdkVersion` and all 'com.android.support' to 27.0.1.
        (It may be a good solution because the best practice is always use latest `compileSdkVersion`.  
        However, use 26 or 27 is base on you for example higher library may have bug)
    }
}

查看/验证应用中所有库的dependencies
打开终端并运行./gradlew app:dependencies

查看应用中特定库的dependencies,请按照以下教程进行操作: - How to exclude dependencies of a particular dependency in Gradle

希望有所帮助

答案 24 :(得分:6)

使用新版本的android studio 3.x非常简单。

只需复制小于当前版本的版本,然后使用与当前版本相同的版本号显式添加它。

示例

  

找到版本27.1.1,27.1.0。示例包括com.android.support:animated-vector-drawable:27.1.1和com.android.support:exifinterface:27.1.0

只需复制版本com.android.support:exifinterface:27.1.0并将其更改为com.android.support:exifinterface:27.1.1,以使其等于您正在使用的当前版本,然后将其添加到gradle依赖项中,如下所示。

implementation 'com.android.support:exifinterface:27.1.1'

注意:完成操作后,请不要忘记单击编辑器顶部的立即同步

答案 25 :(得分:6)

您已使用版本24.0.0而非25.1.1定义了任何其他依赖项。请将所有依赖项版本设置为与25.1.1相同。

答案 26 :(得分:5)

突出显示错误并按&#34; ALT + ENTER&#34;,您将看到一个选项:

添加库依赖关系&gt;编辑意图设置

这将带您进入一个菜单,您可以在其中看到与support-compat不同的特定问题支持依赖项。在gradle中创建其依赖项(com&#39; XXX&#39;)并设置它的版本以匹配support-compat的版本。同步gradle,你已经完成了。

答案 27 :(得分:5)

implementation 'com.android.support:appcompat-v7:26.1.0'

在此行之后您必须在您的gradle中添加新行

implementation 'com.android.support:design:26.1.0'

答案 28 :(得分:5)

确保所有Facebook SDK依赖项都使用项目的相同支持库版本:

dependencies {
    // Facebook SDK dependencies, excluding Bolts
    compile "com.android.support:appcompat-v7:25.4.0"
    compile "com.android.support:cardview-v7:25.4.0"
    compile "com.android.support:customtabs:25.4.0"
    compile "com.android.support:design:25.4.0"

    compile "com.facebook.android:facebook-android-sdk:4.23.0"
}

答案 29 :(得分:5)

我只是将我的Android支持信息库更新为(修订版:44.0.0); 然后Android SDK工具和模拟器从sdk manager&gt;到最新版本25.3.1 SDK工具 它解决了我的问题。

答案 30 :(得分:5)

对我来说,错误是我导入的第三方库导致使用较旧的Google支持库模块的结果。我只是将它们更新到最新版本(例如检查Github),错误消失了。我建议您检查build.gradle中包含的所有非Google库是否为最新版。

答案 31 :(得分:5)

我必须在gradle中添加以下行以删除错误

compile 'com.android.support:animated-vector-drawable:25.2.0'
compile 'com.android.support:preference-v7:25.2.0'
compile 'com.android.support:customtabs:25.2.0'
compile 'com.android.support:cardview-v7:25.2.0'

答案 32 :(得分:5)

更新到Android Studio 2.3后出现同样的问题,修复方法是在build.gradle中添加以下包:

compile 'com.android.support:support-v13:25.3.1'

注意:更改版本以匹配项目中使用的其他支持库包

答案 33 :(得分:4)

重新加入

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

由此

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:mediarouter-v7:25.3.1'

重建和良好的编码

答案 34 :(得分:4)

升级到android studio 3.4和sdk版本到28.0.0后,我遇到了这个问题。应用以下依赖项为我解决了这个问题。

    implementation 'com.android.support:exifinterface:28.0.0'

答案 35 :(得分:4)

更新到Android Studio 2.3后出现此问题

在依赖项中添加这些行解决了我的问题

compile 'com.android.support:customtabs:25.2.0'  
compile 'com.android.support:palette-v7:25.2.0'

答案 36 :(得分:3)

我的项目中有这些依赖项:

implementation 'com.android.support.constraint:constraint-layout:1.1.3'

implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'

implementation 'com.google.android.gms:play-services-maps:16.1.0'

implementation 'com.google.firebase:firebase-database:17.0.0'
implementation 'com.google.firebase:firebase-storage:17.0.0'
implementation 'com.google.firebase:firebase-messaging:18.0.0'

implementation 'com.firebaseui:firebase-ui-storage:0.6.0'

到目前为止,似乎没有什么错,但是我得到了以下消息:

  

找到版本28.0.0,23.4.0。例子包括   com.android.support:animated-vector-drawable:28.0.0和   com.android.support:palette-v7:23.4。

然后我做了:

$ ./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath >> dep.txt

在文件中,我搜索了 palette ,并发现它已被Firebase存储使用:

\--- com.firebaseui:firebase-ui-storage:0.6.0
     +--- com.android.support:appcompat-v7:23.4.0 -> 28.0.0 (*)
     +--- com.android.support:palette-v7:23.4.0

添加后:

implementation 'com.android.support:palette-v7:28.0.0'

似乎已解决,没有更多错误。

//欢呼声

答案 37 :(得分:3)

如果您在实施所有下面提到的新库后遇到问题。我在这个'com.android.support:appcompat-v7:27.1.0'兼容的版本中遇到了上述同样的问题。

implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:design:27.1.0'
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:mediarouter-v7:27.1.0'
implementation 'com.android.support:recyclerview-v7:27.1.0'
implementation 'com.android.support:cardview-v7:27.1.0'
implementation 'com.android.support:support-v13:27.1.0'
implementation 'com.android.support:support-v4:27.1.0'

我只是替换 这个

'com.android.support:appcompat-v7:27.1.0'

到这个

'com.android.support:appcompat-v7:27.0.1'

答案 38 :(得分:3)

另一件可能导致此问题的事情是,如果你有这样的声明:

compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:+'

+表示使用的最新版本可能是25.3.1以后的版本。将+替换为25.3.1这样的特定版本,如下所示:

compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'

它将解决问题

答案 39 :(得分:3)

可以使用以下方法解决该问题:

  1. 打开您的pygame.Rect文件。
  2. 点击底部的合并清单选项
  3. 在右侧,它将显示其他清单文件。这是您所包含的或由于其他依赖关系而被包含的不同依赖关系的独立清单文件。
  4. 找出错误消息中提到的依赖性。单击它以打开其清单文件。
  5. 如果您的错误消息说要更改AndroidManifest.xml中的android:value属性,那么这里就是进行此更改的地方。
  6. 更改值和显示该版本号不匹配的其他位置,并使用meta-data文件中包含的版本进行更改。
  7. 现在同步项目,您一切顺利

答案 40 :(得分:3)

包括以下行:

-NaN

确保您使用的是Android Studio插件3 +

enter image description here

答案 41 :(得分:3)

尝试使构建工具与支持库的版本完全相同

示例

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.itechnologyeg.*******"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    } 
dependencies {
 compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:animated-vector-drawable:25.0.0'
    compile 'com.android.support:mediarouter-v7:25.0.0'
    compile 'com.android.support:recyclerview-v7:25.0.0'
    compile 'com.android.support:cardview-v7:25.0.0'
    compile 'com.android.support:design:25.0.0'
}

答案 42 :(得分:3)

对我来说,我通过添加以下内容解决了错误:compile 'com.android.support:design:<version>'

答案 43 :(得分:2)

  

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

此警告通常在我们使用Google Play服务时发生,因为它使用支持库作为依赖项。

我们大多数人都不知道我们可以覆盖Google Play服务中使用的支持库。当我们使用以下依赖项时:

implementation "com.android.support:animated-vector-drawable:25.1.1"

它隐式依赖于com.android.support:mediarouter-v7:25.1.1。但这与com.android.support:mediarouter-v7:24.0.0的Google Play服务依赖关系发生冲突。因此,我们需要通过显式使用以下库来覆盖它:

implementation "com.android.support:mediarouter-v7:25.1.1"

然后,您的依赖项块将包括这两个对象:

dependencies {
    implementation "com.android.support:animated-vector-drawable:25.1.1"
    implementation "com.android.support:mediarouter-v7:25.1.1"

    ...
}

答案 44 :(得分:2)

我设法通过添加

来编译(不是很干净)

image description here

答案 45 :(得分:2)

这很简单,只需强制所有v7和v4库使用在依赖项之前设置的库版本即可。

configurations.all {
                    // To resolve the conflict for com.android.databinding
                    // dependency on support-v4:21.0.3
                    resolutionStrategy.force 'com.android.support:support-v4:28.0.0'
                    resolutionStrategy.force 'com.android.support:support-v7:28.0.0'
                }

答案 46 :(得分:1)

我必须在gradle中添加以下行以删除错误 这取决于您使用的版本与appcompat相同

compile 'com.android.support:appcompat-v7:26+'

compile 'com.android.support:mediarouter-v7:26+'

答案 47 :(得分:1)

我的问题解决了 添加以下最新依赖项implementation 'com.google.firebase:firebase-auth:16.0.4'

答案 48 :(得分:1)

花了大约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>

答案 49 :(得分:0)

只有一种方式......你必须手动完成...... 转到build.gradle检查将所有依赖项分配给相同的版本.. 它应该工作..

答案 50 :(得分:0)

只需添加// noinspection GradleCompatible

public class LocalizedPageRouteModelConvention : IPageRouteModelConvention
    {
        private ILocalizationService _localizationService;

        public LocalizedPageRouteModelConvention(ILocalizationService localizationService)
        {
            _localizationService = localizationService;
        }

        public void Apply(PageRouteModel model)
        {
            var route = _localizationService.LocalRoutes().FirstOrDefault(p => p.Page == model.RelativePath);
            if (route != null)
            {
                foreach (var option in route.Versions)
                {
                    model.Selectors.Add(new SelectorModel()
                    {
                        AttributeRouteModel = new AttributeRouteModel
                        {
                            Template = option
                        }
                    });
                }
            }
        }
    }

答案 51 :(得分:-1)

此错误是由于下滑库造成的。试试毕加索或其他图片库

答案 52 :(得分:-3)

我的解决方案我只需添加

//noinspection GradleCompatible

我构建测试我的应用程序,一切正常。