Understanding Build Error: Method code too large

Understanding Build Error: Method code too large

将 Andoird Build 发送到服务器时出现以下构建错误:

Error! Failed to transform some classes java.lang.RuntimeException: Method code too large! at net.orfjackal.retrolambda.asm.MethodWriter.getSize(MethodWriter.java:2036) at net.orfjackal.retrolambda.asm.ClassWriter.toByteArray(ClassWriter.java:827) at net.orfjackal.retrolambda.Transformers.transform(Transformers.java:121) at net.orfjackal.retrolambda.Transformers.transform(Transformers.java:106) at net.orfjackal.retrolambda.Transformers.backportClass(Transformers.java:46) at net.orfjackal.retrolambda.Retrolambda.run(Retrolambda.java:72) at net.orfjackal.retrolambda.Main.main(Main.java:26)

我必须承认我不确定为什么会发生这种情况,因为我没有引用这些 类。有人可以解释一下如何找出原因并解决它吗?自从上次成功构建以来,我没有添加任何新的导入:/我的项目也设置为使用 Java 8。老实说,不知道从这里到哪里去。

class 文件中方法的大小有 64k 的硬性限制。您至少有一个大方法需要拆分。它可能刚好低于初始编译的限制,但 retrolambda 转换只是将其推过。您需要将这些方法拆分为更小的方法。

这个错误并没有真正让您知道哪些方法有问题,但您可能会看到它。