过时的proguard文件;使用-keepclasseswithmembers而不是-keepclasseswithmembernames

时间:2011-12-23 06:52:58

标签: android proguard

我的android项目中的proguard.cfg文件出现以下错误。我不知道这个错误说的是什么。有什么想法吗?

2 个答案:

答案 0 :(得分:26)

这是SDK工具v11的错误。 http://code.google.com/p/android/issues/detail?id=16384

当Lint生成错误时,

  • 转到lint警告视图(Window> Show View> Other> android> Lint Warnings)并双击错误修改proguard.cfg

  • 将“keepclasseswithmembernames”重命名为“keepclasseswithmembers”,并显示错误并保存。

  • 再次运行Lint(单击Lint Warnings视图中的刷新)

  • 如果在后续行中显示更多警告,请重复重命名。

我改变了我的样子。

-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 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 enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

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

答案 1 :(得分:16)

尝试

清理并构建项目,然后在“问题”视图中选择错误标记 按删除。

请参阅以下链接

http://groups.google.com/group/android-developers/browse_thread/thread/7606320e664fec9b