评论者:gshayban
来自 Android
{quote}
Android不运行Java字节码,它运行Dex字节码。你的类转换出的dexdump输出很有趣。
JVMS也没有什么兴趣。Android不是一个Java虚拟机。我们遵循JLS,但不遵循JVMS(我们怎么能运行Java字节码呢)。因此,所有对此的诉求都是不相关的。我们尝试使Dex字节码方面与JVMS的精神兼容,但是如果你的源代码不是Java,那就没有保证。
现在,验证器(可能仍然是)有问题的,即使是针对我们(相当糟糕)的规范,而且我们并不非常一致。例如,在Marshmallow中,大量我们不能正确验证有关结构化锁定的代码被拒绝为VerifyError,这与JVMS的精神不符。在下一个版本中,这将得到放松,并推迟到实际运行代码时进行检查。
遗憾的是,我们无法对旧版本做出任何处理,你必须在工作时解决任何问题。:-) 当我有时间时,我会尝试查看你的类。
{quote}
似乎在Clojure中找到一种权宜之计是所有弊端中最低的。