Gradle Sync警告-清单合并失败-可穿戴游戏服务

时间:2018-06-27 07:24:51

标签: android android-gradle android-support-library

gradle同步后,我收到以下错误消息:

Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.2) from [com.android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
    is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.

在我的Wear应用程序中,我有一个引发错误的依赖项:

implementation 'com.google.android.gms:play-services-wearable:15.0.1'

如果我停用它,则gradle同步将正常工作。

据我所知,这是最新版本。谁能帮我解决这个问题?

Android Wear应用依赖项:

compileOnly 'com.google.android.wearable:wearable:2.3.0'
implementation 'com.google.android.support:wearable:2.3.0'
implementation 'com.google.android.gms:play-services-wearable:15.0.1'

3 个答案:

答案 0 :(得分:4)

问题是com.google.android.support:wearable:2.3.0取决于支持库 26.0.2
在这里https://mvnrepository.com/artifact/com.google.android.support/wearable/2.3.0中看到!

com.google.android.gms:play-services-wearable:15.0.1取决于支持库 26.1.0
在这里https://mvnrepository.com/artifact/com.google.android.gms/play-services-basement/15.0.1中看到!

我已通过将其添加到清单文件中解决了该问题:

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

但这不是理想的,因为如果添加更高的库版本,则必须更改或删除它。 如果您忘记了它,您仍将使用26.1.0而不是新版本。

Google必须找到一个真正的解决方案,即更新版本的com.google.android.support:wearable应该使用依赖项26.1.0而不是26.0.2!

答案 1 :(得分:0)

尝试android studio建议

Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.

如果不起作用,请使用26.1.0 `

答案 2 :(得分:0)

您可以通过覆盖冲突的库来消除错误。 play-services-wearable:15.0.1库看起来像使用com.android.support:percent:26.0.2中包含的com.android.support:support-v4:26.1.0。尝试将support:percent库添加到您的依赖项块中,如下所示:

dependencies {
    implementation 'com.google.android.support:percent:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'

    ...
}