【问题标题】:GWT 2.5.0 compiler exceptionGWT 2.5.0 编译器异常
【发布时间】:2013-06-05 22:33:57
【问题描述】:

我们的团队尝试从 GWT 2.4.0 升级到 2.5.0,但现在我们面临一个问题 - 编译器抛出异常。这是编译器日志:

绑定:user.agent=safari 绑定:compiler.useSourceMaps=true 绑定:locale=en 编译模块 app.m8.web.AGM 验证 单位: 在第一次通过时忽略了 3 个具有编译错误的单元。使用 -strict 编译或将 -logLevel 设置为 TRACE 或 DEBUG 以查看所有 错误。 [错误] 发生内部编译器异常 com.google.gwt.dev.jjs.InternalCompilerException:意外错误 访问期间。在 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.JModVisitor.accept(JModVisitor.java:265) 在 com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:116) com.google.gwt.dev.jjs.ast.JReturnStatement.traverse(JReturnStatement.java:39) 在 com.google.gwt.dev.jjs.ast.JModVisitor$ListContextImmutable.traverse(JModVisitor.java:170) 在 com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemoveImmutable(JModVisitor.java:336) 在 com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:83) 在 com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361) 在 com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273) 在 com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:137) 在 com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:133) 在 com.google.gwt.dev.jjs.ast.JMethodBody.traverse(JMethodBody.java:82) 在 com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361) 在 com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273) 在 com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265) 在 com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:426) 在 com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:395) 在 com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361) 在 com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273) 在 com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265) 在 com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:902) 在 com.google.gwt.dev.jjs.impl.UnifyAst.exec(UnifyAst.java:627) 在 com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:624) 在 com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:33) 在 com.google.gwt.dev.Precompile.precompile(Precompile.java:278) 在 com.google.gwt.dev.Precompile.precompile(Precompile.java:229) 在 com.google.gwt.dev.Precompile.precompile(Precompile.java:141) 在 com.google.gwt.dev.Compiler.run(Compiler.java:232) 在 com.google.gwt.dev.codeserver.Recompiler.compile(Recompiler.java:89) 在 com.google.gwt.dev.codeserver.ModuleState.(ModuleState.java:54) 在 com.google.gwt.dev.codeserver.CodeServer.start(CodeServer.java:88) 在 com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:51) 引起:java.lang.ClassCastException: com.google.gwt.dev.jjs.ast.JMethod 无法转换为 com.google.gwt.dev.jjs.ast.JConstructor 在 com.google.gwt.dev.jjs.ast.JNewInstance.getTarget(JNewInstance.java:56) 在 com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.endVisit(UnifyAst.java:275) 在 com.google.gwt.dev.jjs.ast.JNewInstance.traverse(JNewInstance.java:86) 在 com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361) 在 com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273) ... 31 更多 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 [错误] 编译器返回错误

有人可以提出解决方案吗?

【问题讨论】:

  • 能不能在com.google.gwt.dev.jjs.ast.JNewInstance#getTarget下下断点,看看JMethod代表什么方法?还要检查您的Contact_FieldSerializer#instantiate 代码。
  • 感谢您的评论,托马斯。原因找到了,现在一切正常。这种方法实际上不是一种方法。我们有一个类 Contact 实现了 Serializable。它必须包含默认构造函数,但它具有 public void Contact() {}。这就是原因。问题已关闭。
  • 您是否介意提交问题(如果可能,请提供一些代码以重现):code.google.com/p/google-web-toolkit/issues/entry

标签: gwt compiler-construction


【解决方案1】:

删除**中的文件

gwt-unitCache

** 存在于您的项目文件夹中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    相关资源
    最近更新 更多