【问题标题】:GWT 2.8.2 compiler exceptionGWT 2.8.2 编译器异常
【发布时间】:2017-12-19 14:23:31
【问题描述】:

com.google.gwt.dev.PrecompilationContextCreator$1.getAllPossibleRebindAnswers(PrecompilationContextCreator.java:86) 在 com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.createStaticRebindExpression(UnifyAst.java:519) 在 com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.createRebindExpression(UnifyAst.java:487) 在 com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.maybeHandleMagicMethodCall(UnifyAst.java:415) 在 com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.visit(UnifyAst.java:402) 在 com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:265) 在 com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361) 在 com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273) ... 45 更多 [错误] 在 GridView.java(1351): GWT.create(GridTemplates.class) com.google.gwt.dev.jjs.ast.JMethodCall [错误] 在 GridView.java(1351): (GridTemplates) GWT.create(GridTemplates.class) com.google.gwt.dev.jjs.ast.JCastOperation [错误] 在 GridView.java(1351): this.templates = (GridTemplates) GWT.create(GridTemplates.class) com.google.gwt.dev.jjs.ast.JBinaryOperation [错误] 在 GridView.java(1351): this.templates = (GridTemplates) GWT.create(GridTemplates.class) com.google.gwt.dev.jjs.ast.JExpressionStatement [错误] 在 GridView.java(1350): { this.templates = (GridTemplates) GWT.create(GridTemplates.class); } com.google.gwt.dev.jjs.ast.JBlock [错误] 在 GridView.java(1350): { this.templates = (GridTemplates) GWT.create(GridTemplates.class); } com.google.gwt.dev.jjs.ast.JMethodBody [错误] 在 GridView.java(1350): com.extjs.gxt.ui.client.widget.grid.GridView.initTemplates()V com.google.gwt.dev.jjs.ast.JMethod

【问题讨论】:

  • 你能分享下这条消息之前的错误日志吗?
  • 我在这里发布完整版:pastebin.com/t4QT1VHa
  • 您的日志显示有 82 个文件根本没有编译,但由于未处于严格模式而被忽略。我建议从那里开始并修复它,但下一个错误是[ERROR] Line 322: The method append(boolean) is ambiguous for the type StringBuffer,这没有任何意义。检查您是否正确更新了所有 GWT 依赖项,并且您的项目中没有意外拥有 2.8.1 或更低版本的旧副本。
  • 我的项目使用 gwt 2.1.1 运行并更新到 2.8.2。在我更新后没有编译并在那里给出这些错误,你能帮帮我吗?
  • 您需要修复一些类型转换错误 - 检查第 548 行:类型不匹配:无法从 com.google.gwt.dom.client.Element 转换为 com.google.gwt.user.client。元素

标签: java gwt compiler-errors runtime-error


【解决方案1】:

您使用的是什么版本的 GXT?从 2.0-2.1 更新到 2.2 及更高版本时,必须使用一个自定义的 GXT 2 jar,标记为 gxt-version-gwt22.jar,以便它正常工作。您的类路径中很可能还有其他 jars 需要更新(并且应该这样记录)以正确移动到最新版本。

例如,如果使用 gxt 2.3.1,则需要从 gxt-2.3.1.jar 切换到 gxt-2.3.1-gwt22.jar。如果您使用的是早于 2.2.0 的 GXT 2 版本,您可能只需更新到 GXT 的较新版本即可继续操作。

【讨论】:

  • 嗨科林,很抱歉在这里轰炸 :) 我现在失去了几天,找不到为什么我得到同样的例外。我试图从 gwt2.5 迁移到 gwt 2.8。在 2.5 中,我使用 gxt2.2.5-gwt22.jar 和 2.8 和相同的 gxt 我得到完全相同的错误,方法不明确。也尝试使用 gxt.2.3.1 和 gxt.2.3.1a-gwt22.jar 但同样的错误..
  • 很难说没有看到项目,但你有一些不兼容的罐子。确保清理项目(gwt-unitCache 等),确保检查依赖项(如果使用 maven,mvn dependency:tree -Dverbose 并查找 2.8.2 以外的其他内容),确保只有一份 gwt-user/gwt-你的类路径上的 dev/gxt 等。gitter.im/gwtproject/gwt 正在聊天 GWT 的东西,或者给我发电子邮件 colin@vertispan.com。还可以考虑创建自己的问题,包含完整的详细信息(依赖项详细信息、更新的日志等),我每天检查几次。
  • 谢谢你的及时回复,我直接给你发邮件,对我来说是最简单的。 Tnx :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
相关资源
最近更新 更多