Gradle混合版本警告

时间:2018-09-01 06:57:42

标签: android gradle

我的应用使用API​​ 19,我将MapView放在自己的布局之一内,并添加了Google Maps实现。现在我收到gradle的警告,说我正在混合版本。

这是警告:

  

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本28.0.0-rc02,26.1.0。示例包括com.android.support:animated-vector-drawable:28.0.0-rc02和com.android.support:support-media-compat:26.1.0更多...(Ctrl + F1)

这是我的gradle依赖项:

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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.volley:volley:1.1.1'
implementation 'com.google.android.gms:play-services-maps:15.0.1'

警告显示'com.android.support:appcompat-v7:28.0.0-rc02'

我不确定在哪里可以找到用于play-services-maps的正确版本,或者如何正确解决此问题。我不想将最低版本从19降级。

7 个答案:

答案 0 :(得分:3)

在build.gradle(:app)的末尾添加它

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
            details.useVersion '26.1.0'
     }

   }
}

答案 1 :(得分:3)

建议如下:

  

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。

这意味着您必须exclude 26.1.0并提供28.0.0-rc02来代替

implementation "com.android.support:support-media-compat:28.0.0-rc02"
implementation "com.android.support:support-v4:28.0.0-rc02"
implementation ("com.google.android.gms:play-services-maps:15.0.1") {
    exclude group: "com.google.android.gms", module: "support-media-compat"
    exclude group: "com.android.support", module: "support-v4"
}

可能还有其他版本冲突,而修复它们的工作原理相同。

答案 2 :(得分:2)

1。转到文件系统上的project / .idea / libraries文件夹,查看哪些库不同。

2。您将必须在build.gradle文件中手动包含具有相同版本的这些库。

3。然后,同步您的项目

以您为例:-

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

您需要添加依赖项:-

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

答案 3 :(得分:0)

//put this things in build.gradle(Project) file
allprojects {
  repositories {
    maven {
      url "https://maven.google.com"
    }
    jcenter()
    google()
  }
}

答案 4 :(得分:0)

您需要放弃以下步骤。 1-项目/.idea/库 在这里,您将看到哪个库是不同的。 您可以根据所有库更正其他库。 然后,同步您的项目。

答案 5 :(得分:0)

只需添加此行

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

答案 6 :(得分:0)

面对同一问题,我通过执行以下操作解决了该问题:

  • 在build.gradle文件中检查了我项目的sdk版本,以了解版本并相应地更改了库
  • 然后我必须重写库并更改与sdk内联的版本

所附图片显示了我必须重写的库:

  • com.android.support:animated-vector-drawable 更改为28.0.0

  • com.android.support:support-media-compat 更改为28.0.0

  • com.android.support:support-v4已更改为28.0.0

android studio project dependencies

我了解到,android支持,drawable和compat库是在26.1.0版本中预定义的,而我的sdk版本和目标是28,所以我不得不更改它。

我的gradle运行平稳,还没有遇到任何问题。