有一个项目本身正在使用supportLib版本0f 27.1.1。
它依赖于一些库,不确定是哪个库导致此错误:
任务':demo:processDebugManifest'的执行失败。 清单合并失败:来自[com.android.support:support-emoji-appcompat:26.0.2] AndroidManifest.xml:25:13-35的属性meta-data#android.support.VERSION@value value =(26.0.2) 也出现在[com.android.support:percent:26.1.0] AndroidManifest.xml:25:13-35 value =(26.1.0)。 建议:在AndroidManifest.xml:23:9-25:38的元素上添加'tools:replace =“ android:value”'以进行覆盖。
添加此决议策略后:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion "${versions.support}" //<== versions.support is 27.1.1
}
}
}
}
错误消失了。
我猜它说这个项目应该使用27.1.1,无论是否存在依赖项可能使用不同的依赖项。
问题是这是否还会迫使从属库使用27.1.1,这可能不适用于此版本的27.1.1?
还是只影响这个项目本身?
答案 0 :(得分:0)
它更改了所请求的组com.android.support
的版本号,并且没有版本27.1.1
的“不同版本”。也可以使用Manifest.xml
在<application>
tools:replace
标签中定义版本号:
<meta-data
android:name="android.support.VERSION"
android:value="27.1.1"
tools:replace="android:value"/>