Android ProGuard“java.lang.nosuchfielderror:Toast”异常

前端之家收集整理的这篇文章主要介绍了Android ProGuard“java.lang.nosuchfielderror:Toast”异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我用ProGuard模糊了我的 Android应用程序,当试图运行我的混淆的.apk它抛出:

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();
    }

解决方法

看来您正在使用ACRA进行错误报告.我遇到同样的问题,找到答案在这里: http://code.google.com/p/acra/issues/detail?id=22

解决方案是添加

– 类org.acra.ReportingInteractionMode {*; }

到你的proguard配置文件

猜你在找的Android相关文章