有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我用ProGuard模糊了我的Android应用程序,当我试图运行我的模糊程序时。它抛出的apk:

java.lang.nosuchfielderror: Toast

这是我的前卫。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/安卓-sdk/platforms/安卓
        12/安卓.jar    
    -dontwarn 安卓.support.**
    -dontwarn com.安卓.**
    -dontwarn com.google.**
    -dontwarn org.apache.** 
    -keep public class * extends 安卓.app.Activity
    -keep public class * extends 安卓.app.Application
    -keep public class * extends 安卓.app.Service
    -keep public class * extends 安卓.content.BroadcastReceiver
    -keep public class * extends 安卓.content.ContentProvider
    -keep public class * extends 安卓.app.backup.BackupAgentHelper
    -keep public class * extends 安卓.preference.Preference
    -keep public class com.安卓.vending.licensing.ILicensingService
    -keepclasseswithmembernames class * {
        native <methods>;
    }

    -keepclasseswithmembers class * {
        public <init>(安卓.content.Context, 安卓.util.AttributeSet);
    }

    -keepclasseswithmembers class * {
        public <init>(安卓.content.Context, 安卓.util.AttributeSet, int);
    }

    -keepclassmembers class *.R$ {
        public static <fields>;
    }

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

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

    -keepclassmembers class * extends 安卓.app.Activity {
        public void *On*Click(安卓.view.View);
       public void *on*Click(安卓.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) 个答案

  1. # 1 楼答案

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

    解决办法是增加

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

    到您的proguard配置文件