我有一个GWT maven多模块项目。它与mvn gwt:run
运行良好 - 但是当我将<inherits name='elemental.Elemental'/>
添加到gwt.xml文件时,我收到以下错误。
关键点似乎是JSNI在遍历中突破了什么?
Caused by: java.lang.IndexOutOfBoundsException: Index: 13, Size: 13
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.google.gwt.dev.shell.CompilingClassLoader$DispatchClassInfoOracle.getClassInfoByDispId(CompilingClassLoader.java:120)
at com.google.gwt.dev.shell.CompilingClassLoader.getClassInfoByDispId(CompilingClassLoader.java:1014)
at com.google.gwt.dev.shell.Jsni$JsSourceGenWithJsniIdentFixup.visit(Jsni.java:177)
我尝试过调试它,但我似乎无法追踪任何事情。有什么想法吗?
00:00:19.630 [ERROR]无法加载模块入口点类 com.rc.gloopsh.admin.AdminEntryPoint(参见相关的例外情况) 详情)com.google.gwt.dev.jjs.InternalCompilerException:意外 访问期间出错。在 com.google.gwt.dev.js.ast.JsVisitor.translateException(JsVisitor.java:483) 在com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:470) 在com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445) 在com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at com.google.gwt.dev.js.JsToStringGenerationVisitor.visit(JsToStringGenerationVisitor.java:893) 在com.google.gwt.dev.js.ast.JsReturn.traverse(JsReturn.java:49)at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)at at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at at com.google.gwt.dev.js.JsToStringGenerationVisitor.printJsBlock(JsToStringGenerationVisitor.java:1032) 在 com.google.gwt.dev.js.JsSourceGenerationVisitor.visit(JsSourceGenerationVisitor.java:59) 在com.google.gwt.dev.js.ast.JsBlock.traverse(JsBlock.java:47)at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)at at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at at com.google.gwt.dev.shell.Jsni.generateJavaScriptForHostedMode(Jsni.java:253) 在 com.google.gwt.dev.shell.Jsni.getJavaScriptForHostedMode(Jsni.java:241) 在 com.google.gwt.dev.shell.ModuleSpaceOOPHM.createNativeMethods(ModuleSpaceOOPHM.java:52) 在 com.google.gwt.dev.shell.CompilingClassLoader.injectJsniMethods(CompilingClassLoader.java:1380) 在 com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1151) 在 com.google.gwt.dev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1196) 在java.lang.ClassLoader.loadClass(ClassLoader.java:356)at com.google.gwt.user.client.DOM.appendChild(DOM.java:66)at com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:191)at com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:90)at com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:181)at com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:140)at com.rc.gloopsh.resources.GloopshNav.addNav(GloopshNav.java:34)at at com.rc.gloopsh.admin.AdminEntryPoint.onModuleLoad(AdminEntryPoint.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:601)at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406)at at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200) 在 com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526) 在 com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364) 在java.lang.Thread.run(Thread.java:722)引起: java.lang.IndexOutOfBoundsException:索引:13,大小:13 at java.util.ArrayList.rangeCheck(ArrayList.java:604)at java.util.ArrayList.get(ArrayList.java:382)at com.google.gwt.dev.shell.CompilingClassLoader $ DispatchClassInfoOracle.getClassInfoByDispId(CompilingClassLoader.java:120) 在 com.google.gwt.dev.shell.CompilingClassLoader.getClassInfoByDispId(CompilingClassLoader.java:1014) 在 com.google.gwt.dev.shell.Jsni $ JsSourceGenWithJsniIdentFixup.visit(Jsni.java:177) 在 com.google.gwt.dev.js.ast.JsInvocation.traverse(JsInvocation.java:69) 在com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468) 在com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445) 在com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at com.google.gwt.dev.js.JsToStringGenerationVisitor.visit(JsToStringGenerationVisitor.java:893) 在com.google.gwt.dev.js.ast.JsReturn.traverse(JsReturn.java:49)at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)at at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at at com.google.gwt.dev.js.JsToStringGenerationVisitor.printJsBlock(JsToStringGenerationVisitor.java:1032) 在 com.google.gwt.dev.js.JsSourceGenerationVisitor.visit(JsSourceGenerationVisitor.java:59) 在com.google.gwt.dev.js.ast.JsBlock.traverse(JsBlock.java:47)at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)at at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at at com.google.gwt.dev.shell.Jsni.generateJavaScriptForHostedMode(Jsni.java:253) 在 com.google.gwt.dev.shell.Jsni.getJavaScriptForHostedMode(Jsni.java:241) 在 com.google.gwt.dev.shell.ModuleSpaceOOPHM.createNativeMethods(ModuleSpaceOOPHM.java:52) 在 com.google.gwt.dev.shell.CompilingClassLoader.injectJsniMethods(CompilingClassLoader.java:1380) 在 com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1151) 在 com.google.gwt.dev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1196) 在java.lang.ClassLoader.loadClass(ClassLoader.java:356)at com.google.gwt.user.client.DOM.appendChild(DOM.java:66)at com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:191)at com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:90)at com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:181)at com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:140)at com.rc.gloopsh.resources.GloopshNav.addNav(GloopshNav.java:34)at at com.rc.gloopsh.admin.AdminEntryPoint.onModuleLoad(AdminEntryPoint.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:601)at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406)at at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200) 在 com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526) 在 com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364) 在java.lang.Thread.run(Thread.java:722)
答案 0 :(得分:3)
这是known issue;现在,如果你使用元素,你将不得不使用SuperDevMode。
答案 1 :(得分:0)
似乎elemental.Elemental
中存在一些GWTJS编译器无法编译的内容。由于Elemental is experimental这样的事情可能会发生......