Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.RuntimeException:无法序列化:0.0_Java_Android_Ksoap2 - Fatal编程技术网

java.lang.RuntimeException:无法序列化:0.0

java.lang.RuntimeException:无法序列化:0.0,java,android,ksoap2,Java,Android,Ksoap2,我在asyncTask中发出soap请求,但遇到了如下奇怪错误 04-18 13:51:25.070: E/AndroidRuntime(23482): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:658) 04-18 13:51:25.070: E/AndroidRuntime(23482): at com.mobilion.afa

我在asyncTask中发出soap请求,但遇到了如下奇怪错误

04-18 13:51:25.070: E/AndroidRuntime(23482):    at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:658)
04-18 13:51:25.070: E/AndroidRuntime(23482):    at com.mobilion.afad.RegisterDevice.getWebService(RegisterDevice.java:49)
04-18 13:51:25.070: E/AndroidRuntime(23482):    at com.mobilion.afad.RegisterDevice.access$0(RegisterDevice.java:44)
04-18 13:51:25.070: E/AndroidRuntime(23482):    at com.mobilion.afad.RegisterDevice$requestTask.doInBackground(RegisterDevice.java:109)
这些是我的方法

private boolean getWebService(String Method, SoapSerializationEnvelope SoapRequest)
{
    HttpTransportSE httpTransport = new HttpTransportSE(SoapAddress);
    try
    {
        httpTransport.call(Soapaction, SoapRequest);
        //httpTransport.call(NameSpace + Method, SoapRequest);
        return true;
    }
    catch (IOException e)
    {
        e.printStackTrace();
        return false;
    }
    catch (XmlPullParserException e)
    {
        e.printStackTrace();
        return false;
    }
}


下面是引发该异常的方法:

private void writeElement(XmlSerializer writer, Object element, 
                          PropertyInfo type, Object marshal)
        throws IOException {
    if (marshal != null) {
        ((Marshal) marshal).writeInstance(writer, element);
    } else if (element instanceof SoapObject) {
        writeObjectBody(writer, (SoapObject) element);
    } else if (element instanceof KvmSerializable) {
        writeObjectBody(writer, (KvmSerializable) element);
    } else if (element instanceof Vector) {
        writeVectorBody(writer, (Vector) element, type.elementType);
    } else {
        throw new RuntimeException("Cannot serialize: " + element);
    }
}
如您所见,当被序列化的
元素
不是预期的类型时,就会抛出它。根据您得到的消息判断,实际对象很可能是
浮点
双精度
大十进制
实例。我会仔细查看您输入到请求属性中的值


然而,有一点令人费解。根据stacktrace,您的
getWebService
方法直接调用
writeElement
方法。然而,根据源代码,这是不可能的。你有没有。。。嗯。。。编辑堆栈跟踪?如果你想让别人对你的问题做出准确的诊断,那是个坏主意

private void writeElement(XmlSerializer writer, Object element, 
                          PropertyInfo type, Object marshal)
        throws IOException {
    if (marshal != null) {
        ((Marshal) marshal).writeInstance(writer, element);
    } else if (element instanceof SoapObject) {
        writeObjectBody(writer, (SoapObject) element);
    } else if (element instanceof KvmSerializable) {
        writeObjectBody(writer, (KvmSerializable) element);
    } else if (element instanceof Vector) {
        writeVectorBody(writer, (Vector) element, type.elementType);
    } else {
        throw new RuntimeException("Cannot serialize: " + element);
    }
}