Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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:在android中使用ksoap2向web服务传递字节数组列表时无法序列化_Android_Ksoap2_Android Ksoap2 - Fatal编程技术网

获取java.lang.RuntimeException:在android中使用ksoap2向web服务传递字节数组列表时无法序列化

获取java.lang.RuntimeException:在android中使用ksoap2向web服务传递字节数组列表时无法序列化,android,ksoap2,android-ksoap2,Android,Ksoap2,Android Ksoap2,我有大约5 mb大小的db文件,我已转换为字节数组列表,并希望将其传递给我的web服务以保存在服务器上,但我收到无法序列化的错误。我在下面附上我的代码 SoapObject soap_request = new SoapObject(NAMESPACE, METHOD_NAME1); fileName = "DB"+UserID+"_"+backupDateTime+".db"; PropertyInfo pi1 = ne

我有大约5 mb大小的db文件,我已转换为字节数组列表,并希望将其传递给我的web服务以保存在服务器上,但我收到无法序列化的错误。我在下面附上我的代码

            SoapObject soap_request = new SoapObject(NAMESPACE, METHOD_NAME1);
            fileName = "DB"+UserID+"_"+backupDateTime+".db";

            PropertyInfo pi1 = new PropertyInfo();
            pi1.setName("_FileName");
            pi1.setType(String.class);
            pi1.setValue(fileName);
            soap_request.addProperty(pi1);

            PropertyInfo pi2 = new PropertyInfo();
            pi2.setName("_ByteArray");
            pi2.setType(ArrayList.class);
            pi2.setValue(data);
            soap_request.addProperty(pi2);

            PropertyInfo pi3 = new PropertyInfo();
            pi3.setName("UserID");
            pi3.setType(Integer.class);
            pi3.setValue(UserID);
            soap_request.addProperty(pi3);

            Log.v(TAG, "soap_request _FileName= >>"+soap_request.getProperty(0));
            Log.v(TAG, "soap_request _ByteArray= >>"+soap_request.getProperty(1));
            Log.v(TAG, "soap_request UserID= >>"+soap_request.getProperty(2));

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            //new MarshalBase64().register(envelope);
            envelope.setOutputSoapObject(soap_request);
            envelope.dotNet = true;

            Log.v(TAG,"Calling webservice....");
            androidHttpTransportSE = new HttpTransportSE(URL);
            androidHttpTransportSE.debug = true;
            androidHttpTransportSE.call(SOAP_ACTION1, envelope);

            Log.v(TAG,"Getting result from webservice....");
            SoapObject result = (SoapObject) envelope.bodyIn;
            JSONObject response = new JSONObject(result.getProperty(0).toString());
            Log.v(TAG, "Web Response...." + response.get(" Result "));

            if (response.get(" Result ").equals("Uploading DataBase Backup To Server successfully"))
            {
                flag = true;
                Log.v(TAG, "Database is uploaded .........");
            }
试着改变这个

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//new MarshalBase64().register(envelope);

我想你也会从中更好地了解你的问题

希望它能帮助你

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
new MarshalBase64().register(envelope); // this line is for serialization