2013-07-19 6 views
18

kompilieren habe ich verwenden Joda Zeit API in meinem Android-Projekt, mein Projekt kompilieren nicht, wenn ich ein signiertes apk exportieren, es wird den Fehler „Proguard zeigt wieder mit Fehlercode 1. siehe Konsole“, unten ist das Fehlerprotokoll,Android - Proguard nicht mit Joda Zeit jar-Datei

[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) 

meine proguard.cfg Datei aussieht,

-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 *; 
} 

jemand mir auf diesem helfen kann? Ich muss meine App veröffentlichen. die Lösung wird geschätzt. danke im voraus.

Antwort

9

hier auf dem Pfosten Basierend: https://plus.google.com/112998433182673852267/posts/ApBBBjv9szw

Was tatsächlich passiert ist, dass die fehlende „vonString“ Klasse ist eine Anmerkung, die tatsächlich nicht vorhanden als Klassendatei in joda-time-2.0.jar ist. Es gibt einen Anspruch (http://www.scala-lang.org/node/10575), dass eine fehlende Annotation-Klasse Datei soll nicht Kompilierung beeinflussen, was richtig klingt, aber ich weiß nicht, wo diese offiziell angegeben.

Sie müssen http://joda-convert.sourceforge.net/ zum Buildpfad Ihres Projekts hinzufügen.

+0

Hallo @Morrison Chang, fügte ich, dass joda-convert-1.3 .1 JAR-Datei, noch besteht dieses Problem. Jetzt können die Warnungen um 31. reduziert werden. Kannst du mir dabei helfen? – Amarnath

+0

@Amarnath Wenn ein anderes Problem (Warnung/Fehler), sind Sie mit einer anderen Frage besser dran. Ansonsten aktualisieren Sie Ihre Frage. –

+0

Hallo @Morrison Chang, fügte ich das letzte Fehler unten als Antwort anmelden. Kannst du mir auch dabei helfen? – Amarnath

43

Wenn die fehlenden Klassen nicht benötigt werden, können Sie die Warnungen unterdrücken:

-dontwarn org.joda.convert.** 

die ProGuard Handbuch Siehe> Fehlerbehebung>Warning: can't find referenced class

+0

hi @Eric Lafortune, wo sollte ich den obigen Code verwenden . project.properties oder proguard.cfg? – Amarnath

+0

Hallo @Eric Lafortune, jetzt kann ich bauen. aber es zeigt Fehler in actionbar sherlock beim Ausführen der App. – Amarnath

+0

Hi, jetzt kann ich den Prj erfolgreich erstellen und ausführen. danke für deine Unterstützung. ich habe die actionbar sherlock suport codes in meine proguard datei eingefügt. – Amarnath

Verwandte Themen