与Android使用Proguard没有混淆

当使用-dontobfuscate标志时,出现“转换为Dalvik格式失败,出现错误1”错误。 否则,我的应用出口罚款。 我不想混淆,因为我正在使用BugSense进行错误跟踪,如果您需要对您的堆栈跟踪进行解除混淆,他们每个月会收取99美元。 我仍然想获得proguard的文件大小和优化的好处。

如果我注释掉–dontobfuscate每件事情都很好。 除了不可读的堆栈跟踪。

我的progaurd.cfg文件:

-dontobfuscate -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -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 * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } 

我也会接受一个答案,指向正确的方向。 有我应该看的日志文件?

Solutions Collecting From Web of "与Android使用Proguard没有混淆"

添加!代码/分配/variables是解决proguard错误当-dontobfuscate设置为您的-optimizations

例如

 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable 

您应该确保在SDK(android-sdk / tools / proguard / lib / proguard.jar)中使用了最新版本的Android SDK或至less最新版本的ProGuard(版本为4.7) 。