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 楼答案
您似乎正在使用ACRA进行错误报告。我遇到了同样的问题,在这里找到了答案:http://code.google.com/p/acra/issues/detail?id=22
解决办法是增加
-keep class org.acra.ReportingInteractionMode { *; }
到您的proguard配置文件