
07-22 11:12:57.718: W/System.err(9582): java.lang.NumberFormatException: InvalID int: "][2"07-22 11:12:57.728: W/System.err(9582): at java.lang.Integer.invalIDInt(Integer.java:138)07-22 11:12:57.728: W/System.err(9582): at java.lang.Integer.parse(Integer.java:375)07-22 11:12:57.738: W/System.err(9582): at java.lang.Integer.parseInt(Integer.java:366)07-22 11:12:57.738: W/System.err(9582): at java.lang.Integer.parseInt(Integer.java:332)07-22 11:12:57.738: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.getIndex(SoapSerializationEnvelope.java:287)07-22 11:12:57.748: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.readVector(SoapSerializationEnvelope.java:304)07-22 11:12:57.758: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.readInstance(SoapSerializationEnvelope.java:446)07-22 11:12:57.758: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.read(SoapSerializationEnvelope.java:387)07-22 11:12:57.768: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.readUnkNown(SoapSerializationEnvelope.java:273)07-22 11:12:57.768: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.read(SoapSerializationEnvelope.java:389)07-22 11:12:57.788: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.readUnkNown(SoapSerializationEnvelope.java:273)07-22 11:12:57.788: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.read(SoapSerializationEnvelope.java:389)07-22 11:12:57.798: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:151)07-22 11:12:57.798: W/System.err(9582): at org.ksoap2.soapEnvelope.parse(SoapEnvelope.java:140)07-22 11:12:57.798: W/System.err(9582): at org.ksoap2.transport.Transport.parseResponse(Transport.java:118)07-22 11:12:57.808: W/System.err(9582): at org.ksoap2.transport.httpTransportSE.call(httpTransportSE.java:253)07-22 11:12:57.808: W/System.err(9582): at org.ksoap2.transport.httpTransportSE.call(httpTransportSE.java:116)07-22 11:12:57.808: W/System.err(9582): at org.ksoap2.transport.httpTransportSE.call(httpTransportSE.java:111)
如果我将完全相同的请求放入SoapUI,则调用有效.
即使使用KSoap2,我也会收到回复,但错误似乎是在Ksoap2中解析响应.
我相信这部分响应导致错误:
<data soapenc:arrayType="xsd:anyType[][2]" xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/enCoding/">
Ksoap2认为[2]任何类型[] [2]应该是一个int.
这是ksoap2中的错误吗?这有解决方法吗?
解决方法07-22 11:12:57.738: W/System.err(9582): at org.ksoap2.serialization.soapSerializationEnvelope.getIndex(SoapSerializationEnvelope.java:287)
从ksoap v2.1.2的源代码:这是导致NumberFormatException的SoapSerializationEnvelope.getIndex(String value,int start,int dflt)方法:
private int getIndex(String value,int dflt) { if (value == null) return dflt; return value.length() - start < 3 ? dflt : Integer.parseInt(value.substring(start + 1,value.length() - 1));} 这是v2.0.1中的SoapSerializationEnvelope.getIndex(String value,int dflt) { if (value == null) return dflt; return value.length() - start < 3 ? dflt : Integer.parseInt(value.substring(start + 1,value.length() - 1)); }
看看http://sourceforge.net/p/kobjects/bugs/14/提交的错误报告.它和你的问题一样.错误报告提到版本2.0.1.并且版本2.0.1和2.1.2之间的getIndex(String value,int dflt)没有变化.
另一份报告:Can’t handle two dimensional arrays
总结以上是内存溢出为你收集整理的Android KSoap2和Array问题全部内容,希望文章能够帮你解决Android KSoap2和Array问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)