我们团队试图从GWT 2.4.0升级到2.5.0,但现在我们面临一个问题——编译器抛出了异常。这是编译器日志:
绑定:user.agent=safari 绑定:compiler.useSourceMaps=true 绑定:locale=en 编译模块app.m8.web.AGM 验证单元: 在第一次编译中忽略了3个具有编译错误的单元。使用-strict或-logLevel设置为TRACE或DEBUG编译以查看所有错误。 [ERROR]发生内部编译器异常com.google.gwt.dev.jjs.InternalCompilerException:在访问期间发生意外错误。在JVisitor.java的com.google.gwt.dev.jjs.ast.JVisitor.translateException(JVisitor.java:109)处,com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:276)被接受。 在com.google.gwt.dev.jjs.ast.JReturnStatement.traverse(JReturnStatement.java:39)处,com.google.gwt.dev.jjs.ast.JModVisitor$ListContextImmutable.traverse(JModVisitor.java:170)被接受。 在JBlock.java的com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:83)处,com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)被接受。 在UnifyAst.java的com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:902)中,com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:426)被接受。 java.lang.ClassCastException:com.google.gwt.dev.jjs.ast.JMethod无法转换为com.google.gwt.dev.jjs.ast.JConstructor在JNewInstance.java的com.google.gwt.dev.jjs.ast.JNewInstance.getTarget(JNewInstance.java:56)处引起。在Contact_FieldSerializer.java(65)处的com.google.gwt.dev.jjs.ast.JNewInstance和在Contact_FieldSerializer.java(65)处的com.google.gwt.dev.jjs.ast.JReturnStatement引起错误。在Contact_FieldSerializer.java(64)处的com.google.gwt.dev.jjs.ast.JBlock和在Contact_FieldSerializer.java(64)处的com.google.gwt.dev.jjs.ast.JMethodBody引起错误。在Contact_FieldSerializer.java(64)处的public static Contact instantiate(SerializationStreamReader streamReader); com.google.gwt.dev.jjs.ast.JMethod [ERROR]编译器返回false有人可以提供一个解决方案吗?
com.google.gwt.dev.jjs.ast.JNewInstance#getTarget
中设置一个断点,以查看JMethod
代表哪个方法?同时检查一下你的Contact_FieldSerializer#instantiate
代码。 - Thomas Broyer