gst*_*low 1 java compatibility jvm bytecode bytecode-manipulation
根据这个主题: 获取java.lang.VerifyError的原因
java.lang.VerifyError 获取执行jvm的版本是否比用于编译的jvm更新.
我们始终可以使用以下jvm选项解决此问题:-XX:-UseSplitVerifier.
根据这个:
使用此选项是"非常安全".
因此,我不明白为什么java.lang.VerifyError是阻止成功编译的问题.请澄清.也许对于检测字节码的库来说,它是不安全的?
您链接的问答是指使用替代验证程序可以安全解决的特定类型的验证错误.但是,还有其他类型的验证错误,您不应该忽略......并且您无法以这种方式处理.
简而言之,关联问题中的建议一般不适用.一般来说:
切换到替代验证器可能无济于事.
如果完全禁用验证程序,则可能会运行可能违反JVM运行时类型安全(等)约束的代码.这可能导致安全问题和/或堆损坏以及硬JVM崩溃.
如果您有需要建议的特定VerifyError,请包含完整的异常消息和堆栈跟踪,并描述它发生的情况.请注意,Andrey的答案是正确的,验证错误的常见原因是代码中的错误,这些代码正在为各种目的进行"字节码工程".通常,修复方法是更改为相应依赖项的不同版本.