Android-Proguard没有';t使用Joda时间jar文件编译

Android-Proguard没有';t使用Joda时间jar文件编译,android,apk,proguard,jodatime,Android,Apk,Proguard,Jodatime,我在我的android项目中使用了Joda time 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 refere

我在我的android项目中使用了Joda time 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 *;
}
-优化过程5
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-不要翻转
-冗长的
-优化!代码/简化/算术,!字段/*,!类/合并/*
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-keep public class*扩展了android.app.backup.BackupAgentHelper
-keep public class*扩展了android.preference.preference
-保持公共类com.android.vending.licensing.ILicensingService
-KeepClassSwithMemberNames类*{
本地人;
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
有人能帮我吗?我需要发布我的应用程序。 我们将感谢您的解决方案。 提前感谢。

根据此处的帖子:

实际发生的情况是,缺少的“FromString”类是一个注释,它在joda-time-2.0.jar中并没有实际作为类文件出现。有一种说法()认为丢失的注释类文件不应该影响编译,这听起来是正确的,但我不知道这是在哪里正式声明的


您需要添加到项目的生成路径。

如果不需要缺少的类,您可以取消显示警告:

-dontwarn org.joda.convert.**

请参阅ProGuard手册>疑难解答>

我通过将以下内容添加到我的build.gradle>dependencies块来修复它:

dependencies {
    implementation group: 'org.joda', name: 'joda-convert', version: '2.0.1', classifier: 'classic'
    implementation 'joda-time:joda-time:2.9.4'
}

您好@Morrison Chang,我添加了joda-convert-1.3.1 jar文件,但这个问题仍然存在。现在警告减少了31。你能帮我解决这个问题吗?@Amarnath如果是另一个问题(警告/错误),你最好换一个问题。否则请更新您的问题。嗨@Morrison Chang,我在下面添加了最后一个错误日志作为答案。你能帮我吗?你应该把它作为你问题的一部分。另外,您正在导出joda time和joda convert?当我删除joda time jarhi@Eric Lafortune时,DateTime类中显示错误,我应该在哪里使用上述代码。project.properties或proguard.cfg?嗨@Eric Lafortune,现在我可以构建了。但在运行应用程序时,actionbar sherlock显示错误。嗨,现在我可以成功构建并运行prj了。谢谢你的支持。我在proguard文件中添加了actionbar sherlock支持代码。这应该是这个问题的公认答案。感谢这篇简短而甜蜜的帖子@EricLafortune。我应该在哪里添加
dontwarn
行?