【问题标题】:ProGuard warnings: there were 7 unresolved references to program class membersProGuard 警告:对程序类成员有 7 个未解决的引用
【发布时间】:2015-03-12 04:06:44
【问题描述】:

ProGuard 停止并出现大量警告:

警告:有 1221 个未解析的类引用或 接口。 您可能需要添加缺少的库 jar 或更新它们的版本。 如果您的代码在没有丢失类的情况下工作正常,您可以抑制 带有“-dontwarn”选项的警告。 (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)

警告:有 37 个库类实例,具体取决于 节目课。 你必须避免这种依赖,因为程序类会 被处理,而库类将保持不变。 (http://proguard.sourceforge.net/manual/troubleshooting.html#dependency) 警告:有 7 个未解决的引用 程序类成员。 您的输入类似乎不一致。 您可能需要重新编译代码。 (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)

错误:请先更正上述警告。

但是我的 jar 运行正常。我对proguard设置不太熟悉。有什么建议吗?

【问题讨论】:

    标签: java jar proguard


    【解决方案1】:

    我将引用你问题的一个非常相关的部分(即答案)。

    如果您的代码工作正常没有缺少的类,您可以使用“-dontwarn”选项抑制警告

    所以,使用-dontwarn 运行它,因为我的 jar 运行正常。

    已记录(根据您的问题)here,如果您有要添加的外部库,也可以使用选项 -libraryjars

    【讨论】:

      【解决方案2】:

      这里最好的做法是在 progyard 配置文件中添加库。在它的顶部,就在输入和输出 jar 路径之后,放置类似这样的行,一个用于您使用的每个库 jar:

      -libraryjars 'path/to/jar/file.jar'
      

      这告诉 proguard 从指定的 jar 中加载缺少的类。

      【讨论】:

        【解决方案3】:

        上面有类似警告

        Warning: class A: can't find referenced class B
        

        您可以使用-keep class com.package.** { *; } 来防止其被混淆,或者如果您确定这不是问题,您可以使用-dontwarn com.package.**

        【讨论】:

          猜你喜欢
          • 2016-08-05
          • 1970-01-01
          • 2011-12-22
          • 2017-08-20
          • 1970-01-01
          • 2012-04-25
          • 2014-06-26
          • 2011-12-25
          • 2015-07-06
          相关资源
          最近更新 更多