2012-04-05 13 views
10

मैं ProGuard साथ अपने Android एप्लिकेशन के समझ से परे है और जब मेरी समझ से परे .apk फेंक देता है भागने की कोशिश कर:एंड्रॉयड ProGuard "java.lang.nosuchfielderror: टोस्ट" अपवाद

java.lang.nosuchfielderror: Toast

यह मेरा proguard.cfg फ़ाइल है:

<!-- 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

आप अपने proguard.cfg फ़ाइल कृपया यह पहले जोड़ने भूल गया अन्य इस सवाल को कम करें। – rekire

उत्तर

4

ऐसा प्रतीत होता है कि आप त्रुटि रिपोर्टिंग के लिए ACRA का उपयोग कर रहे हैं। मैं एक ही मुद्दे में भाग गया, इस सवाल का जवाब मिला: http://code.google.com/p/acra/issues/detail?id=22

समाधान है

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

जोड़ने के लिए अपने ProGuard कॉन्फ़िग फ़ाइल को

+3

Acra वेबसाइट पर आप पूर्ण स्पष्टीकरण पा सकते हैं: https://github.com/ACRA/acra/wiki/Proguard –

+0

मैंने जवाब के समाधान की कोशिश की, लेकिन यह काम नहीं किया, इसलिए मैंने [लिंक में दिए गए निर्देशों का पालन किया ] (http://github.com/ACRA/acra/wiki/Proguard) योआन हेर्कौट प्रदान किया गया और यह काम किया। –

संबंधित मुद्दे