评论发布者:gshayban
来自Android
{quote}
Android不运行Java字节码,它运行Dex字节码。你类转换成的dexdump输出很有趣。
JVMS(Java虚拟机规范)也不是很有兴趣。Android不是Java虚拟机。我们遵循JLS(Java语言规范),但不遵循JVMS(我们怎么能呢,因为我们不运行Java字节码)。因此,所有针对它的上诉都是无关紧要的。我们尽力与 JVMS 的精神保持兼容(针对Dex字节码),但如果你的源代码不是Java,则没有任何保证。
现在,验证器(可能仍然是)有问题的,甚至与我们的(相当糟糕的)规范相比也是如此,且我们并不是非常一致。例如,在Marshmallow中,我们很多关于结构化锁定的代码无法正确验证,并以 VerifyError 的形式被拒绝,这与 JVMS 的精神不符。然而,在下一个版本中,这将得到放宽,并将推迟到实际运行代码时进行检查。
遗憾的是,我们无法处理老版本的发布,您将不得不解决任何问题。 :-( 当我有时间时,我会尝试查看您的课程。
{quote}
听起来在Clojure中制作一个 workaround 是最坏的选择。