【问题标题】:JavaScript exceptions with compiled GWT code已编译 GWT 代码的 JavaScript 异常
【发布时间】:2011-08-12 01:34:08
【问题描述】:

在编译 GWT 类期间,我遇到了一些编译器异常。我在这里提交了一个错误报告:http://code.google.com/p/google-web-toolkit/issues/detail?id=6623

现在我找到了如何让它编译,使用“draftCompile”。但是,生成的 JavaScript 代码在执行时不起作用。

Java 源文件可从 bug tracker 获得,编译后的项目在这里:http://clientssh1.rbg.informatik.tu-darmstadt.de:9000/war/Gwittest.html

错误是:(Chrome)“未捕获的 TypeError:无法读取属性 'testpackage_shared_ship_Level_boards' of null”。在 Firefox 中是另一个错误。

代码在开发模式下工作(来自 Eclipse)。

如何解决此错误?它与编译/优化错误有关吗?我该如何解决它?如果它本身就是一个错误,我也应该报告这个,不是吗?

编辑:有问题的课程在这里:https://gist.github.com/1139147

【问题讨论】:

标签: javascript gwt


【解决方案1】:

错误听起来像是编译后的 javascript 包含如下代码:

null.testpackage_shared_ship_Level_boards

如果 GWT 优化器认为您的“级别”类型变量(其字段“boards”已读取)必须为空,则会发生这种情况。优化器通常是正确的。

因此,一种方法是: 将代码编译成人类可读的 javascript (-style pretty)。获取 javascript 错误并找到导致它的行。找到您的 Java 源代码对应的行,并追溯变量值的来源。您可能会发现该变量未初始化。

【讨论】:

  • 它已经是人类可读的。您可以在错误报告中查看源代码。优化器被禁用。它在开发模式下工作。
  • @user309483:您接受了这个答案,但我看不出它有什么帮助,您能否描述一下您是如何发现问题的?
  • @Paulo:嗯,我认为这是一个 GWT 编译器错误。我通过在服务器端运行更多代码(即未编译 GWT)解决了这个问题......这个答案显示了努力,我接受它以确认我怀疑 GWT 编译器有问题。另外,我不想让我的接受配额太低,因为我认为这会阻止人们回答我的问题。对不起。请注意,我在 GWT 2.3.0 中遇到了这个问题,他们可能已经修复了导致它的任何原因。
  • 你可以回答你自己的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多