Android – Proguard没有用Joda Time jar文件编译

我在我的android项目中使用Joda时间API,我的项目没有编译当我导出签名的apk,它显示错误“Proguard返回错误代码1。请参阅控制台”,下面是错误日志,

[2013-07-20 00:50:25 - CC] Proguard returned with error code 1. See console [2013-07-20 00:50:25 - CC] Warning: org.joda.time.DateMidnight: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.DateTime: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.DateTimeZone: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.DateTimeZone: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Days: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Days: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Duration: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Hours: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Hours: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Instant: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.LocalDate: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.LocalDate: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.LocalDateTime: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.LocalDateTime: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.LocalTime: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.LocalTime: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Minutes: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Minutes: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.MonthDay: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.MonthDay: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Months: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Months: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.MutableDateTime: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.MutableDateTime: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.MutablePeriod: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Period: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Seconds: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Seconds: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Weeks: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Weeks: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.YearMonth: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.YearMonth: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Years: can't find referenced class org.joda.convert.FromString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.Years: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.base.AbstractDuration: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.base.AbstractInstant: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] Warning: org.joda.time.base.AbstractPeriod: can't find referenced class org.joda.convert.ToString [2013-07-20 00:50:25 - CC] You should check if you need to specify additional program jars. [2013-07-20 00:50:25 - CC] Warning: there were 37 unresolved references to classes or interfaces. [2013-07-20 00:50:25 - CC] You may need to specify additional library jars (using '-libraryjars'). [2013-07-20 00:50:25 - CC] java.io.IOException: Please correct the above warnings first. [2013-07-20 00:50:25 - CC] at proguard.Initializer.execute(Initializer.java:321) [2013-07-20 00:50:25 - CC] at proguard.ProGuard.initialize(ProGuard.java:211) [2013-07-20 00:50:25 - CC] at proguard.ProGuard.execute(ProGuard.java:86) [2013-07-20 00:50:25 - CC] at proguard.ProGuard.main(ProGuard.java:492) 

我的proguard.cfg文件看起来像,

 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } 

谁可以帮我这个事? 我需要发布我的应用程序。 该解决scheme将不胜感激。 提前致谢。

Solutions Collecting From Web of "Android – Proguard没有用Joda Time jar文件编译"

根据这里的post: https : //plus.google.com/112998433182673852267/posts/ApBBBjv9szw

实际发生的事情是缺less的“FromString”类是一个注释,它在joda-time-2.0.jar中实际上不是作为类文件存在的。 有一个声明( http://www.scala-lang.org/node/10575 )缺less注释类文件不应该影响编译,这听起来是正确的,但我不知道这是正式说明。

您需要将http://joda-convert.sourceforge.net/添加到您项目的构buildpath&#x3002;

如果不需要丢失的类,则可以禁止警告:

 -dontwarn org.joda.convert.** 

请参阅ProGuard手册>故障排除> 警告:找不到引用的类