2012-04-05 17 views
10

istisna:Android ProGuard "java.lang.nosuchfielderror: Tost" o atar .apk benim Karartılmış çalıştırmayı çalışırken ProGuard ile benim Android uygulamasını şaşırtma ve

java.lang.nosuchfielderror: Toast

Bu benim proguard.cfg dosyasıdır:

<!-- language: lang-none --> 

    -injars  bin/classes //injars 
    -injars  libs //injars 
    -outjars  bin/classes-processed.jar 
    -optimizationpasses 1 
    -dontusemixedcaseclassnames 
    -dontskipnonpubliclibraryclasses 
    -dontpreverify 
    -verbose 
    -allowaccessmodification 
    -keepattributes *Annotation* 
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 
    -printmapping D:/out.map 
    -renamesourcefileattribute ProGuard 
    -keepattributes Exceptions,InnerClasses,Signature,Deprecated, 
     SourceFile,LineNumberTable,*Annotation*,EnclosingMethod 
    -libraryjars C:/Program Files/Android/android-sdk/platforms/android 
     12/android.jar  
    -dontwarn android.support.** 
    -dontwarn com.android.** 
    -dontwarn com.google.** 
    -dontwarn org.apache.** 
    -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 *.R$ { 
     public static <fields>; 
    } 

    -keepclassmembers enum * { 
     public static **[] values(); 
     public static ** valueOf(java.lang.String); 
    } 

    -keep class * implements android.os.Parcelable { 
     public static final android.os.Parcelable$Creator *; 
    } 

    -keepclassmembers class * extends android.app.Activity { 
     public void *On*Click(android.view.View); 
     public void *on*Click(android.view.View); 
    } 

    -keepclassmembers class * implements java.io.Serializable { 
     static final long serialVersionUID; 
     private static final java.io.ObjectStreamField[] serialPersistentFields; 
     private void writeObject(java.io.ObjectOutputStream); 
     private void readObject(java.io.ObjectInputStream); 
     java.lang.Object writeReplace(); 
     java.lang.Object readResolve(); 
    } 
+1

http://code.google.com/p/acra/issues/detail?id=22

çözümdür sizin proguard yapılandırma dosyasına

-keep class org.acra.ReportingInteractionMode { *; }

eklemek için: Buraya cevap buldum, aynı konuda koştu Diğerleri bu soruyu reddetmektedir. – rekire

cevap

4

Hata bildirimi için ACRA kullanıyorsunuz. Eğer proguard.cfg dosya önce ekleyin unuttum

+3

Acra web sitesinde tam açıklama bulabilirsiniz: https://github.com/ACRA/acra/wiki/Proguard –

+0

Yanıtın çözümünü denedim ama işe yaramadı. ] (http://github.com/ACRA/acra/wiki/Proguard) Yoann Hercouet sağladı ve çalıştı. –

İlgili konular