在开发模式下打开我的 GWT 应用程序时出现以下异常。完全相同的代码可以使用 mvn gwt:compile 成功编译
引起:java.lang.ArrayIndexOutOfBoundsException: com.google.gwt.dev.asm.ClassReader.readClass(ClassReader.java:1976) 的 com.google.gwt.dev.asm.ClassReader.accept(ClassReader.java:) 的 3667 464) 在 com.google.gwt.dev.shell.rewrite.HasAnnotation.hasAnnotation(HasAnnotation.java:45) 在 com.google.com.google.gwt.dev.asm.ClassReader.accept(ClassReader.java:420) .gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1100) 在 com.google.gwt.dev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1203) 在 java.lang.ClassLoader.loadClass(ClassLoader.java :247) 在 java.lang.Class.forName0(Native Method) 在 java.lang.Class.forName(Class.java:247) 在 com.google.gwt.dev.shell.ModuleSpace.loadClassFromSourceName(ModuleSpace.java:665 ) 在 com.google.gwt.dev.shell.ModuleSpace。rebindAndCreate(ModuleSpace.java:468) at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49) at com.google.gwt.core.shared.GWT.create(GWT.java:57)在 com.google.gwt.core.client.GWT.create(GWT.java:85) 在 ...
我过度使用 ModuleSpace.java 并在 Class.forName() 之前的第 665 行打印出类名,指出它正在尝试加载生成的 GinjectorImpl.java
我发现我生成的 GinjectorImpl.java 大约 9MB 和 100K+ 行代码。
当我从我的 GWT 应用程序中随机删除一些模块时,它又可以工作了,所以我猜它对于 ASM 来说太大而无法编译。
有什么建议么?谢谢
环境:GWT 2.5.0、GIN 1.5.0、gwt-maven-plugin 2.5.0、Java 6 SE