gpt4 book ai didi

android - java.util.zip.ZipException : duplicate entry Foo. 类

转载 作者:行者123 更新时间:2023-12-03 06:00:57 25 4
gpt4 key购买 nike

在构建项目时遇到了这个众所周知的异常。

我的问题是:
我怎样才能找到Foo.class 的重复位置(在哪些 jar 、库中)是?

我过去曾经解决过这样的问题,通常原因是在不同版本的Android库中(支持,播放等......)。我的项目有10个模块,所以每次需要比较10个build.gradle中的所有依赖.

特别是,现在是 javax/annotation/CheckForNull.class .我卡住了,找不到任何重复的依赖项。
所以我只需要一个简单的方法来知道 - X 包含哪个库 Foo.class并且另一个库 Y 包含 Foo.class .是否可以?

最佳答案

将此添加到您的 build.gradle

task findDuplicates  {
doLast {
def pathMap = [:]
def jars = configurations.runtime.asFileTree.matching {
include '*.jar'
}
jars.visit { FileVisitDetails fvd ->
FileTree classTree = zipTree(fvd.file).matching {
include '**/*.class'
}
classTree.visit { FileVisitDetails fvd2 ->
String path = fvd2.relativePath.pathString
List<String> jarList = pathMap[path]
if (!jarList) {
jarList = []
pathMap[path] = jarList
}
jarList << fvd.file.name
}
}
pathMap.each { path, jarList ->
if (jarList.size() > 1) {
println "Duplicate $path at $jarList"
}
}
}
}

然后调用 gradle findDuplicates从命令行

关于android - java.util.zip.ZipException : duplicate entry Foo. 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41775653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com