我最近安装了 ADT 16,它现在突出了一个问题,即我有过时的选项 -keepclasseswithmembernames 而不是 -keepclasseswithnames。我已经修复了 proguard.cfg 文件,但 lint 拒绝识别该修复并阻止 Eclipse 构建该文件。
我当前的 proguard.cfg 文件:
-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
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
最佳答案
刚遇到同样的问题。在将 proguard.cfg 中的 -keepclasseswithmembernames
更改为 -keepclasseswithmembers
之后,我通过单击 Lint Warnings 窗口(右上角)中的刷新按钮来修复它。
关于Android 开发者工具 16 和混淆器中的 -keepclasseswithmembers 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8491929/