评论者:gshayban
来自 Android
{quote}
Android 不运行 Java 字节码,而是运行 Dex 字节码。你类转换成的 dexdump 输出很有趣。
JVMS(Java虚拟机规范)也不是很有趣。Android 不是一个 Java 虚拟机。我们遵循 JLS(Java语言规范),但不遵循 JVMS(因为我们不运行 Java 字节码)。因此,所有针对它的上诉都是不相关的。我们 尽力 与 JVMS 关于 Dex 字节码的精神保持兼容,但如果你的源代码不是 Java,则没有任何保证。
现在,验证器在(很可能还是)我们的(相当糟糕的)规范中都存在问题,遗憾的是,我们并不一致。例如,在 marshmallow 中,许多关于结构化锁定的代码我们无法正确验证,被拒绝为 VerifyError,这不符合 JVMS 的精神。然而,在下一个版本中,这将放宽,并将推迟到运行代码时进行实际检查。
遗憾的是,我们无法处理旧版本,您必须自行解决任何问题。:-() 当我有时间时会尝试查看你的类。
{quote}
听起来在Clojure中制定一个避开的方法是最小的问题。