自定义类的GWT延迟绑定失败:在urn:import中没有匹配“...”的类:

时间:2012-11-06 03:26:13

标签: class gwt matching uibinder

我正在开发一些我希望能够与UiBinder一起使用的自定义小部件。不幸的是,我继续浪费我的生命,追逐以下错误:

在urn中没有匹配“...”的类:import:...

这似乎是在类中阻止GWT编译器处理它的任何错误时抛出的全部异常。这包括类的整个依赖树中的任何内容。

为了保存我自己以及遇到同样问题的任何人一些时间和痛苦,让我们在这里编制一个最意想不到且难以找到原因的列表。我将从我的最新版开始,这让我决定在这里发布。

4 个答案:

答案 0 :(得分:3)

我正在使用CellList:

private static RelationshipViewerUiBinder uiBinder = GWT.create(RelationshipViewerUiBinder.class);

@UiField(provided=true)
CellList<String> prioritisedDisplay;

public RelationshipViewer() {

    prioritisedDisplay = new CellList<>(new TextCell());
    initWidget(uiBinder.createAndBindUi(this));
}

请注意Java 7样式&lt;&gt;在CellList上。尽管我的IDE遭到了相反的抗议,但事实证明你需要明确说出CellList&lt;串GT;在那个新的调用,或者它不会编译,所有你得到的是上面提到的错误。谢谢顺便说一句,这个问题的存在促使我仔细检查我的代码,并且可能节省了我几个小时!这修好了它:

private static RelationshipViewerUiBinder uiBinder = GWT.create(RelationshipViewerUiBinder.class);

@UiField(provided=true)
CellList<String> prioritisedDisplay;

public RelationshipViewer() {

    prioritisedDisplay = new CellList<String>(new TextCell());
    initWidget(uiBinder.createAndBindUi(this));
}

答案 1 :(得分:2)

我编写了一个使用GWT JSON功能的组件,但没有将com.google.gwt.json.JSON导入模块。

感谢您的留言,这只耗时2小时......

答案 2 :(得分:1)

我写了一个帮助类,这个小部件在其依赖树的深处使用。

对于这个助手类,我告诉Eclipse自动生成hashCode()equals(...)函数。该类包含一个类型为double的字段,Eclipse为其生成使用Double.doubleToLongBits()的代码。

结果发现GWT没有在其Double版本上实现此方法。但是,当然,Eclipse也没有将此检测为可能的编译错误,如果我在GWT-App的Java代码中使用小部件而不是在UiBinder内部,它也不会在开发模式中引起任何问题。

耗时3小时......太棒了......对于有用的错误消息,你可以。

更新:

从GWT 2.5.0(RC1)开始,GWT现在支持Double.doubleToLongBits()使这个特定错误过时,但缺少JRE仿真的一般错误机制仍然存在,并且可能会以同样无益的方式表现出来

答案 3 :(得分:1)

我试图在UiBinder .ui.xml中使用GwtQuery DragAndDropCellTree,这是不可能的,因为DragAndDropCellTree没有零参数构造函数。

See more details