项目引入了com.google.guava的包,转化为androidx后运行时候出现错误:
Error: Program type already present: com.google.common.util.concurrent.ListenableFuture
查类ListenableFuture(com.google.common.util.concurrent.ListenableFuture),发现有两个包中都有这文件,一个包是com.google.guava:listenablefuture:1.0,一个是com.google.guava:guava:20
用gradlew -q app:dependencies 查看包依赖,发现有两个地方有
+--- androidx.appcompat:appcompat:1.1.0-alpha01
| +--- androidx.annotation:annotation:1.0.0 -> 1.0.1
| +--- androidx.core:core:1.1.0-alpha01 -> 1.1.0-alpha02
| | +--- com.google.guava:listenablefuture:1.0
| | +--- androidx.annotation:annotation:1.0.1
| | +--- androidx.collection:collection:1.0.0 -> 1.1.0-alpha01
| | | --- androidx.annotation:annotation:1.0.0 -> 1.0.1
| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0
| | | +--- androidx.lifecycle:lifecycle-common:2.0.0
| | | | --- androidx.annotation:annotation:1.0.0 -> 1.0.1
| | | --- androidx.arch.core:core-common:2.0.0
| | | --- androidx.annotation:annotation:1.0.0 -> 1.0.1
| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0-alpha01
| | | +--- androidx.annotation:annotation:1.0.0 -> 1.0.1
| | | --- androidx.collection:collection:1.0.0 -> 1.1.0-alpha01 (*)
| | --- androidx.concurrent:concurrent-futures:1.0.0-alpha02
| | +--- com.google.guava:listenablefuture:1.0
| | --- androidx.annotation:annotation:1.0.0-rc01 -> 1.0.1
最后在配置文件中加入配置,全局过滤掉这个
configurations {
//这里要排除到这个包,这个包会与 com.google.guava 冲突,导致编译不过
all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}
之后编译运行ok