use*_*116 6 java intellij-idea proguard
我正在使用intellij中的gradle proguard插件(不是用于android项目),将我的libraryjars指定为java home,将jars输入为jarname.jar,并将jars输出为jarname.pro.jar.我有一个proguard.txt文件用于配置,除了Main方法保留选项之外的所有内容.Proguard引发以下错误:
java.io.IOException:无法写入[/Users/user/src/name/build/libs/jarname.pro.jar](无法读取[/ Users/user/src/name/hci/build/libs /jarname.jar](重复的zip条目[c/a/a/a.class == jarname.jar:com/google/gson/ExclusionStrategy.class]))
根据proguard网站的这个来源,我在jarname.jar中有重复的条目.手动检查jarname.jar显示没有重复的条目.我应该在哪里解决这个问题?
小智 0
查看此解决方案/黑客:/sf/answers/2770938691/
根据您的错误进行调整,将其添加到 build.gradle 中:
import com.android.build.gradle.internal.pipeline.TransformTask
def deleteDuplicateJniFiles() {
def files = fileTree("/Users/user/src/name/hci/build/libs/") {
include "**/jarname.jar"
}
files.each { it.delete() }
}
tasks.withType(TransformTask) { pkgTask ->
pkgTask.doFirst { deleteDuplicateJniFiles() }
}
Run Code Online (Sandbox Code Playgroud)
请注意,此命令实际上并不会删除这些 jar(您的重复错误意味着它们将被重新添加) - 只有配置/排除块才会执行此操作。我不知道为什么它们被包含在内,因为在我的项目中,在检查 gradle app:dependency 时它们也没有被重复。
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |