2016-04-11 6 views
2

Ich baute eine Version APK meiner App. Es ist perfekt auf vielen Geräten; aber auf diesem Gerät (Google Nexus 5 - 4.4.4 - API 19) gibt es einen Absturz:Android: java.lang.NoClassDefFoundError auf der Freigabe APK

Fatal Exception: java.lang.NoClassDefFoundError: org.joda.time.format.ISODateTimeFormat$Constants 
     at org.joda.time.format.ISODateTimeFormat.dateTimeNoMillis(ISODateTimeFormat.java:789) 
     at com.azeoo.android.network.converter.DateTimeConverter.deserializeDateTime(DateTimeConverter.java:84) 
     at com.azeoo.android.network.converter.DateTimeConverter.deserialize(DateTimeConverter.java:70) 
     at com.azeoo.android.network.converter.DateTimeConverter.deserialize(DateTimeConverter.java:24) 
... 

Es ist diese Bibliothek korrekt hinzugefügt Gradle Datei:

compile 'joda-time:joda-time:2.9.2' 

Meine Proguard Datei:

# Specific for https://github.com/PhilJay/MPAndroidChart 
-keep class com.github.mikephil.charting.** { *; } 

# Specific for https://github.com/bumptech/glide 
-keep public class * implements com.bumptech.glide.module.GlideModule 
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { 
    **[] $VALUES; 
    public *; 
} 

# Esperandro 
# Specific for http://dkunzler.github.io/esperandro/ 
-keepnames class de.devland.** { *; } 
-keep class **$$Impl { public *;} 

# keep the annotated things annotated 
-keepattributes *Annotation*, EnclosingMethod, Signature, InnerClasses 

# for dagger also preserve the interfaces 
# assuming they reside in the sub-package 'preferences_main' and all end with 'Prefs' 
#-keep class preferences_main.**Prefs { public *;} 

# for gson see their documentation at 
# https://code.google.com/p/google-gson/source/browse/trunk/examples/android-proguard-example/proguard.cfg 

# Butterknife 
# http://jakewharton.github.io/butterknife/ 
-keep class butterknife.** { *; } 
-dontwarn butterknife.internal.** 
-keep class **$$ViewInjector { *; } 

-keepclasseswithmembernames class * { 
    @butterknife.* <fields>; 
} 

-keepclasseswithmembernames class * { 
    @butterknife.* <methods>; 
} 

# Remove Android logging calls 
# @see http://stackoverflow.com/questions/15571520/how-to-configure-proguard-to-only-remove-android-logging-calls 
# This will not remove error log 
-assumenosideeffects class com.azeoo.android.util.LogUtils { 
    public static void LOGD(...); 
    public static void LOGV(...); 
    public static void LOGI(...); 
    public static void LOGW(...); 
    public static void LOGE(...); 
} 

Können Sie mir helfen Jungs?

+0

Nicht mit der Menge an Informationen, die Sie uns gegeben haben. Benutzt du Proguard? –

+0

Ja, ich habe meinen Beitrag aktualisiert. Vielen Dank ! – anthony

+0

Verwenden Sie Multidex? – Jahnold

Antwort

3

Ich denke, es ist mit MultiDex verwandt, wie Sie sagen, dass es auf anderen Geräten funktioniert, aber auf KitKat kämpft. Fügen Sie Ihrer Anwendungsklasse Folgendes hinzu:

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 
Verwandte Themen