评论由:gshayban 添加
来自Android
{引用}
Android不运行Java字节码,它运行Dex字节码。您的类转换成的dexdump输出很有趣。
JVMS也不有趣。Android不是Java虚拟机。我们遵循JLS,但不是JVMS(我们怎么可能运行Java字节码)。因此,所有针对它的上诉都是无关的。我们尝试与Dex字节码的JVMS精神兼容,但如果您的源代码不是Java,则没有任何保证。
现在,验证器之前(可能现在仍然是)是错误的,甚至违背了我们的(相当差的)规范,并且遗憾的是,我们的执行并不一致。例如,在Marshmallow中,大量我们不能正确验证关于结构锁定的问题代码被拒绝为VerifyError,这与JVMS的精神不符。然而,在下一次发布中,这将得到缓解,并将其推迟到实际执行代码时进行检查。
很遗憾,我们无能为力解决旧版本的问题,您将不得不解决任何问题。:-(\n当我找到时间时,我会试着看看您的类。
{引用}
听起来在Clojure中制作一个变通方案是所有方案中最不糟糕的。