2012-04-05 4 views
10

例外:アンドロイドProGuardの "java.lang.NoSuchFieldErrorの:トースト" それはスローの.apk私は難読化を実行しようとしたとき、私はProGuardのと私のAndroidアプリを難読化し、

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

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

を追加することであるあなたは、あなたのproguard.cfgファイルを忘れてしまったことを追加してくださいする前に他のこの質問をd​​ownvote。 – rekire

答えて

4

エラー報告にACRAを使用しているようです。私はここで答えを見つけ、同じ問題に遭遇した:http://code.google.com/p/acra/issues/detail?id=22

ソリューションはProGuardの設定ファイルに

+3

AcraのWebサイトでは、 https://github.com/ACRA/acra/wiki/Proguard –

+0

私は答えの解決策を試しましたが、うまくいかなかったので、私は[link ](http://github.com/ACRA/acra/wiki/Proguard)Yoann Hercouetが提供してくれました。 –

関連する問題