2012-12-07 64 views
1

我在開發模式下打開我的GWT應用程序時遇到以下異常。完全相同的代碼可以使用MVN GWT編譯成功:編譯當編譯GinjectorImpl.java GWT dev模式時拋出ArrayIndexOutOfBoundsException

引起:java.lang.ArrayIndexOutOfBoundsException:在 com.google.gwt.dev.asm.ClassReader.readClass 3667(ClassReader.java:1976) at com.google.gwt.dev.asm.ClassReader.accept(ClassReader.java:464) at com.google.gwt.dev.asm.ClassReader.accept(ClassReader.java:420) at com.google .gwt.dev.shell.rewrite.HasAnnotation.hasAnnotation(HasAnnotation.java:45) 在 com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1100) 在 com.google.gwt .D ev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1203) at java.lang.ClassLoader.loadClass(ClassLoader.java:247)at java.lang.Class.forName0(Native Method)at java.lang.Class .forName(Class.java:247)at com.google.gwt.dev.shell.ModuleSpace.loadClassFromSourceName(ModuleSpace.java:665) at 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)at com.google.gwt.core.client.GWT.create(GWT.java:85)at ...

我過火ModuleSpace.java和的Class.forName(),它指出它試圖加載所生成GinjectorImpl.java

之前在線路665打印出的類名稱我發現我的生成GinjectorImpl.java爲約9MB和100K +代碼行。

當我從我的GWT應用程序中隨機刪除一些模塊時,它會再次運行,所以我猜測它對於ASM編譯來說太大了。

有什麼建議嗎?由於

環境: GWT 2.5.0,1.5.0 GIN,GWT-Maven的插件2.5.0,Java 6的SE

回答

0

升級GIN到2.0.0固定我的問題

大小生成的Ginjector.java從110K +行縮小爲23行:)

2

嘗試刪除gwt-unitCache文件夾並再次運行gwt-compile。這爲我修好了。