Google Play位置库:清单合并失败

时间:2018-04-03 19:27:24

标签: android android-gradle google-play-services

尝试加入Google Play服务位置库时,我收到以下错误:

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#android.support.VERSION@value 
value=(25.4.0) from [com.android.support:design:25.4.0] 
AndroidManifest.xml:28: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:26:9-28:38 to override.

我的依赖关系如下:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:25.4.0'
    compile 'com.android.support:design:25.4.0'
    implementation "com.android.support:appcompat-v7:25.4.0"
    implementation "com.android.support:preference-v14:25.4.0"
    implementation "com.koushikdutta.ion:ion:2.+"
    implementation 'com.twilio:video-android:2.0.0-beta2'
    implementation 'com.google.android.gms:play-services-location:12.0.0'

    compile('org.simpleframework:simple-xml:2.7.+') {
        exclude module: 'stax'
        exclude module: 'stax-api'
        exclude module: 'xpp3'
    }
}

我已尝试过的内容:

  • 更改支持库的版本。如果我这样做,我会发现一些关于资源和属性未找到的错误。
  • 添加具有类似错误的多篇帖子中描述的resolutionStrategy,例如this one。这导致了类似的一连串错误。
  • 更新构建工具的版本。
  • 更新compileSdkVersion。

我觉得必须有一个简单的解决方案,但我似乎无法找到它。谢谢你的时间。

2 个答案:

答案 0 :(得分:1)

您应该使用以下命令检查冲突库中的依赖项:

./gradlew app:dependencies

其中app是您的模块名称。

或者执行以下操作(阅读View the dependency tree处的详细信息):

  • 选择查看&gt;工具窗口&gt; Gradle(或单击工具窗口栏中的Gradle)。
  • 展开AppName&gt;任务&gt; android并双击androidDependencies。 Gradle执行任务后,应打开“运行”窗口以显示输出。

从您的依赖项快速检查,com.koushikdutta.ion:ion:2.+正在使用its dependencies中的以下内容:

compile 'com.android.support:support-v4:+'

将获得最新版本的支持库。因此,您需要从中排除支持库:

implementation ("com.koushikdutta.ion:ion:2.+") {
    exclude group: 'com.android.support'
    exclude module: 'support-v4'
}

您应该尝试避免在依赖库版本中使用+

确保您使用compileSdkVersionbuildToolsVersiontargetSdkVersionsupport libraries的相同版本。

答案 1 :(得分:1)

尝试下面提到的库代码:

implementation 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:support-v4:27.1.0'
compile 'com.android.support:design:27.1.0'
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:preference-v14:27.1.0'
implementation "com.koushikdutta.ion:ion:2.+"
implementation 'com.twilio:video-android:2.0.0-beta2'
implementation 'com.google.android.gms:play-services-location:12.0.0'
compile('org.simpleframework:simple-xml:2.7.+') {
    exclude module: 'stax'
    exclude module: 'stax-api'
    exclude module: 'xpp3'
}

此外,请确保minSdkVersion为16或更高,因为twilio库支持minSdkVersion 16或更多。还有一件事,compileSdkVersion必须是27。