【发布时间】:2016-12-02 16:28:05
【问题描述】:
我是第一次使用 proguard,编译应用时收到以下错误堆栈:
Note: there were 1 duplicate class definitions.
(http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)
Warning:org.codehaus.jackson.map.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry
Warning:org.codehaus.jackson.map.ext.JodaDeserializers: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers: can't find referenced class org.joda.time.ReadableDateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers: can't find referenced class org.joda.time.ReadableInstant
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateMidnight
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateMidnight
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateMidnight
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateTimeDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateTimeDeserializer: can't find referenced class org.joda.time.DateTimeZone
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateTimeDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateTimeDeserializer: can't find referenced class org.joda.time.ReadableInstant
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$JodaDeserializer: can't find referenced class org.joda.time.format.DateTimeFormatter
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$JodaDeserializer: can't find referenced class org.joda.time.format.ISODateTimeFormat
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$JodaDeserializer: can't find referenced class org.joda.time.format.DateTimeFormatter
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$JodaDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.LocalDate
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.LocalDate
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.LocalDate
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.LocalDateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.LocalDateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.LocalDateTime
Warning:org.codehaus.jackson.map.ext.JodaSerializers: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaSerializers: can't find referenced class org.joda.time.LocalDateTime
Warning:org.codehaus.jackson.map.ext.JodaSerializers: can't find referenced class org.joda.time.LocalDate
Warning:org.codehaus.jackson.map.ext.JodaSerializers: can't find referenced class org.joda.time.DateMidnight
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateMidnightSerializer: can't find referenced class org.joda.time.DateMidnight$Property
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateMidnightSerializer: can't find referenced class org.joda.time.DateMidnight
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateMidnightSerializer: can't find referenced class org.joda.time.DateMidnight$Property
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateMidnightSerializer: can't find referenced class org.joda.time.DateMidnight
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateTimeSerializer: can't find referenced class org.joda.time.DateTime
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.format.DateTimeFormatter
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.format.ISODateTimeFormat
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.format.DateTimeFormatter
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.ReadablePartial
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.ReadableInstant
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateSerializer: can't find referenced class org.joda.time.LocalDate$Property
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateSerializer: can't find referenced class org.joda.time.LocalDate
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateSerializer: can't find referenced class org.joda.time.LocalDate$Property
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateSerializer: can't find referenced class org.joda.time.LocalDate
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer: can't find referenced class org.joda.time.LocalDateTime$Property
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer: can't find referenced class org.joda.time.LocalDateTime
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer: can't find referenced class org.joda.time.LocalDateTime$Property
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer: can't find referenced class org.joda.time.LocalDateTime
Warning:there were 99 unresolved references to classes or interfaces.
You may need to add missing library jars or update their versions.
If your code works fine without the missing classes, you can suppress
the warnings with '-dontwarn' options.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
:app:proguardDebug FAILED
我尝试了对 proguard-rules.txt 的基本更改以及将该文件中的所有内容都注释掉并得到相同的结果,因此该文件的内容(或缺少该文件)似乎对此没有任何影响抛出错误。
如您所见,没有任何东西可以指出确切的重复内容。此外,有关重复的消息下方的警告行引用了我在应用程序中未使用的包。
我已尝试搜索此问题并尝试添加一些行,例如
-keep class android.support.v4.** { *; }
有人建议但没有成功。
这是我的应用程序的 build.gradle 文件中的一些内容,它正在引发标志:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
我在我的应用程序的根文件夹(与我的 build.gradle 文件相同的目录)中有一个文件 proguard-rules.txt,但我在那里没有 proguard-android.txt 文件,或者我在其他任何地方都没有可以找到这件事。这可能是一个原因吗?
有什么想法吗?谢谢!
【问题讨论】: