2015-12-14 29 views
2

當發送Andoird建立到服務器我得到下面的生成錯誤:理解構建錯誤:方法代碼太大

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.不確定從哪裏開始說實話。

回答

3

對於64k的類文件中的方法的大小存在硬性限制。你至少有一個你需要分離的大方法。它可能剛剛進入初始編譯的極限,但retrolambda轉換隻是推遲了它。您需要將這些方法分成更小的方法。

這個錯誤並不能真正給你提供哪些方法有問題的線索,但你可能會注意到它。