繁体   English   中英

proguard 地狱 - 找不到引用的类

[英]proguard hell - can't find referenced class

所以,我发布一些软件,但Proguard的是让我头疼。

当我尝试使用 proguard 导出时,我收到很多警告,即“找不到引用的类”

例如:

[2011-08-07 17:44:37 - GAME] Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
[2011-08-07 17:44:37 - GAME] Warning: there were 52 unresolved references to classes or interfaces.
[2011-08-07 17:44:37 - GAME]          You may need to specify additional library jars (using '-libraryjars'),
[2011-08-07 17:44:37 - GAME]          or perhaps the '-dontskipnonpubliclibraryclasses' option.
[2011-08-07 17:44:37 - GAME] java.io.IOException: Please correct the above warnings first.
[ 

这些警告似乎与 simpleframework 相关,因此在我的 proguard 配置文件中,我添加了以下内容:

-libraryjars pathtoprojecttolibs\simple-xml-2.4.jar

其中pathtoprojecttolibs是我的项目引用的 jar 的路径。

这没什么区别。

如果 simpleframework 引用 javax,我可以告诉 proguard 也忽略它吗??

有任何想法吗?

代码中的org.simpleframework.xml.stream.StreamReader指的是javax.xml.stream.events.XMLEvent 后一个类是 Java 运行时 ( rt.jar ) 的一部分,但不是 Android 运行时 ( android.jar ) 的一部分,因此 ProGuard 会警告某些内容可能已损坏。 如果您确定您的应用程序无论如何都可以工作,则可以指定

-dontwarn javax.xml.stream.events.**

ProGuard 地狱?

就我而言,根本原因就在这里 您可以跳过这些警告:

-dontwarn org.simpleframework.xml.stream.**

原答案在这里

出现此错误是因为您使用的库依赖于其他未真正使用的库,但 Proguard 正在寻找它们。
-dontwarn行添加到 Android 项目中的proguard-rules.pro文件以禁用此警告。

在此处输入图片说明

您可以在错误的堆栈跟踪中找到需要添加到 proguard-rules.pro 中的依赖项。

我的魔法钥匙解决了我的搜索时间:将此添加到 progruard-android.txt

-dontskipnonpubliclibraryclassmembers

您应该将其包含在您的 Proguard 配置中:

-dontskipnonpubliclibraryclasses

我认为这是一个边缘情况,但在我的情况下,我必须完全擦除我的 Jenkins proguard 上的构建文件夹,尝试使用不再存在的旧代码 - 以防万一有人遇到同样的问题。

在我的情况下,我没有改变任何东西,警告开始显示。 问题在于损坏的 gradle 缓存。 检查我的另一个答案 我与此分享,因为我花了 2 个小时才找到问题:]

将此行添加到 gradle 脚本目录中的proguard-rules.pro文件中:

-dontwarn package.class.name.**

其中package.class.name是附加了 jar 文件的类名的包名。

例如:

-dontwarn com.myexternalclass.utils.**

唔。 阅读该警告似乎您尝试使用的库依赖于 javax.xml.stream.events。 我认为命名空间实际上根本没有包含在 android 中。 (见包裹索引)。

尝试在不使用 proguard 的情况下将其部署到模拟器,看看它是否有效。 如果那个警告是准确的,我的猜测是不会的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM