JSNI方法返回了除int以外的其他内容 [英] Something other than an int was returned from JSNI method

查看:103
本文介绍了JSNI方法返回了除int以外的其他内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我以托管模式运行GWT应用程序。偶尔我得到一个奇怪的 HostedModeException 抱怨从JSNI返回的JS值的类型。有时候是在反序列化过程中:

  com.google.gwt.dev.shell.HostedModeException:从int返回的东西不是int JSNI方法'@ com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader :: readInt()':布尔类型的JS值,预期的int 
,位于com.google.gwt.dev.shell.JsValueGlue .getIntRange(JsValueGlue.java:266)
,位于com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144)
,位于com.google.gwt.dev.shell.ModuleSpace .invokeNativeInt(ModuleSpace.java:247)
,位于com.google.gwt.dev.shell.JavaScriptHost.invokeNativeInt(JavaScriptHost.java:75)
,位于com.google.gwt.user.client.rpc .impl.ClientSerializationStreamReader.readInt(ClientSerializationStreamReader.java)

有时位于:

  com.google.gwt.dev.shell.HostedModeException:从JSNI方法'@com.google.gwt.user.client .impl.DOMImpl :: eventGetTypeIn t(Ljava / lang / String;)':类型为null的JS值,预期为int 
,位于com.google.gwt.dev.shell.JsValueGlue.getIntRange(JsValueGlue.java:266)
at com .google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144)
,位于com.google.gwt.dev.shell.ModuleSpace.invokeNativeInt(ModuleSpace.java:247)
at com .google.gwt.dev.shell.JavaScriptHost.invokeNativeInt(JavaScriptHost.java:75)
,位于com.google.gwt.user.client.impl.DOMImpl.eventGetTypeInt(DOMImpl.java)
at com .google.gwt.user.client.impl.DOMImpl.eventGetTypeInt(DOMImpl.java:62)
,位于com.google.gwt.user.client.DOM.eventGetType(DOM.java:602)
com.google.gwt.user.client.Event $ .getTypeInt $(Event.java:695)
at com.extjs.gxt.ui.client.util.BaseEventPreview.onPreviewNativeEvent(BaseEventPreview.java:139)

再次在

  com.google.gwt.dev.shell.HostedModeException:从JSNI方法' @ com.extjs.gxt.ui.client.util.Util :: parseFloat(Ljava / lang / String; F)':布尔类型的JS值,预期的浮点数
,位于com.google.gwt.dev.shell .JsValueGlue.get(JsValueGlue.java:118)
,位于com.google.gwt.dev.shell.ModuleSpace.invokeNativeFloat(ModuleSpace.java:235)
,位于com.google.gwt.dev.shell .JavaScriptHost.invokeNativeFloat(JavaScriptHost.java:67)
at com.extjs.gxt.ui.client.util.Util.parseFloat(Util.java)
at com.extjs.gxt.ui.client .core.El.getFrameSize(El.java:1081)
at com.extjs.gxt.ui.client.core.El.setSize(El.java:2702)
at com.extjs.gxt .ui.client.widget.BoxComponent.setSize(BoxComponent.java:501)
at com.extjs.gxt.ui.client.widget.BoxComponent.setHeight(BoxComponent.java:320)
code>

任何人都可以帮我解决这个问题吗?我使用的是GWT 2.4.0,Google Chrome 16.0.912.75和GWT Developer Plugin 1.0.9738。 为解决某些不可思议的原因chrome与GWT DevMode非常不匹配。解析JSON时随机空指针异常,JSNI返回类型时使用GXT时出错,远程死亡异常是一个非常普遍的问题。这是已知的问题,这就是为什么大多数人不使用GWT DevMode与Chrome。

I am running a GWT application in hosted mode. Sporadically I get a strange HostedModeException complaining about the type of the JS value returned from JSNI. Sometimes it is during deserialization:

 com.google.gwt.dev.shell.HostedModeException: Something other than an int was returned from JSNI method '@com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader::readInt()': JS value of type boolean, expected int
    at com.google.gwt.dev.shell.JsValueGlue.getIntRange(JsValueGlue.java:266)
    at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeInt(ModuleSpace.java:247)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeInt(JavaScriptHost.java:75)
    at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.readInt(ClientSerializationStreamReader.java)

sometimes at:

 com.google.gwt.dev.shell.HostedModeException: Something other than an int was returned from JSNI method '@com.google.gwt.user.client.impl.DOMImpl::eventGetTypeInt(Ljava/lang/String;)': JS value of type null, expected int
    at com.google.gwt.dev.shell.JsValueGlue.getIntRange(JsValueGlue.java:266)
    at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeInt(ModuleSpace.java:247)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeInt(JavaScriptHost.java:75)
    at com.google.gwt.user.client.impl.DOMImpl.eventGetTypeInt(DOMImpl.java)
    at com.google.gwt.user.client.impl.DOMImpl.eventGetTypeInt(DOMImpl.java:62)
    at com.google.gwt.user.client.DOM.eventGetType(DOM.java:602)
    at com.google.gwt.user.client.Event$.getTypeInt$(Event.java:695)
    at com.extjs.gxt.ui.client.util.BaseEventPreview.onPreviewNativeEvent(BaseEventPreview.java:139)

once again at

com.google.gwt.dev.shell.HostedModeException: Something other than a float was returned from JSNI method '@com.extjs.gxt.ui.client.util.Util::parseFloat(Ljava/lang/String;F)': JS value of type boolean, expected float
    at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:118)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeFloat(ModuleSpace.java:235)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeFloat(JavaScriptHost.java:67)
    at com.extjs.gxt.ui.client.util.Util.parseFloat(Util.java)
    at com.extjs.gxt.ui.client.core.El.getFrameSize(El.java:1081)
    at com.extjs.gxt.ui.client.core.El.setSize(El.java:2702)
    at com.extjs.gxt.ui.client.widget.BoxComponent.setSize(BoxComponent.java:501)
    at com.extjs.gxt.ui.client.widget.BoxComponent.setHeight(BoxComponent.java:320)

Can anyone help me on this? I am using GWT 2.4.0, Google Chrome 16.0.912.75 and GWT Developer Plugin 1.0.9738.

解决方案

For some magical reason chrome works very badly with GWT DevMode. Random null pointer exception while parsing JSON, JSNI return types errors when working with GXT, remote death exceptions are a very common problems. It is known problem and that's why most people are not using GWT DevMode with Chrome.

这篇关于JSNI方法返回了除int以外的其他内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆