【问题标题】:Android - proguard.cfg errorAndroid - proguard.cfg 错误
【发布时间】:2013-07-17 02:56:32
【问题描述】:

在新计算机上安装 android SDK 后,我导入了一个旧项目。我在 Eclipse 的“问题”窗口中收到以下错误。

Obsolete proguard file; use -keepclasseswithmembers instead of -keepclasseswithmembernames  proguard.cfg    /MyApplication  line 1

这是文件。我尝试用-keepclasseswithmembers替换此文件中的-keepclasseswithmembernames,但没有帮助。

-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>;
}

-keepclasseswithmembernames * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

【问题讨论】:

  • 你用的是什么proguard版本? java -jar android-sdk/tools/proguard/lib/proguard.jar ?

标签: android proguard


【解决方案1】:

这是我与 proguard 4.4、JDK 1.6、目标 android 2.1 一起使用的示例配置文件。 通过双击jar文件或java -jar android-sdk/tools/proguard/lib/proguard.jar(使用android sdk安装路径)检查你的proguard版本

-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 *;
}

【讨论】:

  • 我使用的是 4.4 版。我会试试你的示例代码。谢谢
  • 我得到一个错误:Conversion to Dalvik format failed with error code 1. When using the above code.
  • 好的,看起来好多了,尽管仍然有错误。你能尝试使用谷歌前几个链接上的一些建议来解决这个问题吗?都是如此链接。 google.com/…
  • 我在第一个链接上得到了它。将 proguard 更新到 4.6。非常感谢!
【解决方案2】:

这似乎是一个 Eclipse / Android SDK 错误 我建议

1) 关闭项目给你错误 2)从eclipse中删除(不要删除文件夹或源) 3)导入您删除的项目 4) 清理并重新构建

最好的问候 斯特凡诺

【讨论】:

  • 在我的情况下这不起作用(您也建议的复制方法也不起作用)。我已经从 JavaEE Indigo + ADTetc “升级”(更改了?)到在 windowsxp 下运行 JDK1.7 的最新 ADT 包(v21.0.0-531062 和 eclipse 3.7.2)。感谢您的努力,可能会帮助其他处于类似但略有不同情况并且也遇到这种症状的人。
【解决方案3】:

如果Previous answer didnt help

然后只需在 Eclipse 中创建空的 Android 项目并将创建的“proguard.cfg”文件复制/替换到您的项目中。

【讨论】:

    【解决方案4】:

    这对我有帮助;右键单击项目名称,然后单击“Android 项目”。然后选择“清除棉绒标记”。似乎我不小心运行了“Lint”来检查一些常见问题,之后我开始看到那些 proguard.cfg 错误。有趣的是,即使我在调试模式下编译,eclipse 仍然会抱怨 proguard(应该只在发布模式下编译时使用)。

    【讨论】:

    • 对我不起作用(系统规格在我在这篇文章中对 stefano 的评论中)。
    【解决方案5】:

    proguard.cfg 将位于您项目的根目录中。编辑它,替换:

    -keepclasseswithmembernames class * {
    

    -keepclasseswithmembers class * {
    

    为我运行 ADT 捆绑包(v21.0.0-531062 和 eclipse 3.7.2 在 windowsxp 下使用 JDK1.7)工作。

    【讨论】:

      【解决方案6】:

      在 Eclipse 问题窗口中选择了错误。它对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 2013-01-08
        相关资源
        最近更新 更多