ProGuard 警告:对程序类成员有 7 个未解决的引用
Posted
技术标签:
【中文标题】ProGuard 警告:对程序类成员有 7 个未解决的引用【英文标题】:ProGuard warnings: there were 7 unresolved references to program class members 【发布时间】: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设置不太熟悉。有什么建议吗?
【问题讨论】:
【参考方案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.**
。
【讨论】:
以上是关于ProGuard 警告:对程序类成员有 7 个未解决的引用的主要内容,如果未能解决你的问题,请参考以下文章