【发布时间】:2014-05-26 16:17:01
【问题描述】:
我在尝试使用 UiBinder 时遇到了 NPE。我第一次使用它,效果很好。所以我想我会尝试将另一个页面移动到 UiBinder,但我得到了这个异常,没有解释为什么。我已经删除了所有可能导致任何错误的东西......但异常仍然存在。这是我的代码的剩余部分。在我尝试使用 UiBinder 之前,该代码运行良好。它抱怨的第一件事是我没有一个空的构造函数。我的另一个文件也没有......而且它根本没有抱怨那个文件。我不允许在同一个包中拥有 2 个使用 UiBinder 的类吗?我不知道为什么一个有效而另一个无效。
MalfunctionViewPage.java
import com.google.gwt.core.shared.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
public class MalfunctionViewPage extends Composite {
interface MalfunctionViewPageUiBinder extends UiBinder<Widget, MalfunctionViewPage> {}
private static MalfunctionViewPageUiBinder uiBinder = GWT.create(MalfunctionViewPage.class);
public MalfunctionViewPage() {
initWidget(uiBinder.createAndBindUi(this));
}
}
MalfunctionViewPage.ui.xml
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">
TEST
</ui:UiBinder>
还有我非常有帮助的例外:
12:01:15.374 [ERROR] [mypackage.JobWorkbook] Failed to create an instance of 'mypackage.client.MalfunctionViewPage' via deferred binding
java.lang.NullPointerException: null
at mypackage.client.MalfunctionViewPage.<init>(MalfunctionViewPage.java:13)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:480)
at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)
at com.google.gwt.core.shared.GWT.create(GWT.java:72)
at mypackage.client.MalfunctionViewPage.<clinit>(MalfunctionViewPage.java:10)
at mypackage.client.Main.changeScreen(Main.java:223)
at mypackage.client.Main.onValueChange(Main.java:151)
at com.google.gwt.event.logical.shared.ValueChangeEvent.dispatch(ValueChangeEvent.java:128)
at com.google.gwt.event.logical.shared.ValueChangeEvent.dispatch(ValueChangeEvent.java:1)
at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1)
at com.google.web.bindery.event.shared.EventBus.dispatchEvent(EventBus.java:40)
at com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193)
at com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88)
at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:127)
at com.google.gwt.user.client.impl.HistoryImpl.fireEvent(HistoryImpl.java:87)
at com.google.gwt.event.logical.shared.ValueChangeEvent.fire(ValueChangeEvent.java:43)
at com.google.gwt.user.client.impl.HistoryImpl.fireHistoryChangedImpl(HistoryImpl.java:94)
at com.google.gwt.user.client.impl.HistoryImpl.newItem(HistoryImpl.java:138)
at com.google.gwt.user.client.History.newItem(History.java:210)
at com.google.gwt.user.client.History.newItem(History.java:195)
at mypackage.client.PageName.switchTo(PageName.java:42)
at mypackage.client.LoginPage$4.onSuccess(LoginPage.java:118)
at mypackage.client.LoginPage$4.onSuccess(LoginPage.java:1)
at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:232)
at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:259)
at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:412)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:576)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:284)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:356)
at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Unknown Source)
【问题讨论】:
-
尝试将 TEST (MalfunctionViewPage.ui.xml) 替换为
-
我试过
TEST 没有运气