首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java / Proguard:找出为什么jar不验证/验证吗?

Java / Proguard:找出为什么jar不验证/验证吗?
EN

Stack Overflow用户
提问于 2016-12-09 00:30:57
回答 1查看 236关注 0票数 0

遇到此错误(就像其他人以前遇到的那样):java.lang.VerifyError: Expecting a stackmap frame at branch target 18

通过将-noverify添加到jdk选项,我找到了一个解决办法。当然,这不是真正的解决方案,所以我正在试图找出jar到底出了什么问题以及为什么它不能成功地验证.

下面是两个jars,它们都知道要验证/不验证:-验证:https://repo.leanplum.com/com/leanplum/Leanplum/1.2.25/ -不是验证:https://repo.leanplum.com/com/leanplum/Leanplum/1.3.1/Leanplum-1.3.1.jar

我试着深入了解为什么这不是有效的,尝试了asm,它为两者都提出了这么多的错误。

问题是由防护引起的,因为禁用防护器的缩小使得jar再次验证。

有没有办法找出为什么jar不使用java进行验证?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-09 15:52:00

这些jars很可能是由ProGuard混淆/生成的,并且不包含StackMapFrame属性。由于这些jars主要用于Android开发,因此不需要保留这些属性,因为Dalvik不支持这些属性。

如果要在普通Java应用程序中使用它们,则需要创建具有适当StackMapFrame属性的jar文件(或使用-noverify选项)。实际上,您也可以使用ProGuard,看看用户指南

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41051236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档