评论者:gshayban
来自 Android
{quote}
Android 不运行 Java 字节码,它运行 Dex 字节码。你的类转换成的 dexdump 输出很有趣。
JVMS 同样不有趣。Android 不是一个 Java 虚拟机。我们遵循 JLS,但不遵循 JVMS(我们怎么能,因为我们不运行 Java 字节码呢)。因此,针对它的上诉都是不相关的。我们尝试符合 JVMS 的精神,关于 Dex 字节码,但如果你的源代码不是 Java 的,则没有任何保证。
现在(可能现在仍然是),验证器出现了问题(甚至对于我们相当糟糕的规格来说也是),遗憾的是我们没有非常一致。例如,在Marshmallow中,大量关于结构锁定但我们无法正确验证的代码被拒绝为VerifyError,这与JVMS的精神不符。在下一个版本中,这将得到放宽,并推迟到代码实际运行时进行检查。
遗憾的是,我们无法对旧版本做任何事情,您必须解决任何问题。:-(
我会在找到时间的时候查看您的类。
{quote}
听起来在Clojure中做一个折衷方案是最坏的选择。