当前位置: 首页 > 知识库问答 >
问题:

'国际组织。ksoap2。序列化。KVM是可变的。空对象引用上的getPropertyCount()

卫逸春
2023-03-14

我知道当我连接到internet但internet不在服务中时,我会遇到这种异常情况,所以当我的请求转到服务器上时,我无法处理该响应。。在那之后,我得到了这个例外。

//我在response=envelope上得到了NullPointerException。getResponse()

class Logintask extends AsyncTask<String, String, String> {


        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            setmainloader(1);

        }

        @Override
        protected String doInBackground(String... args) {

            String NAMESPACE = "URL";
            String URL = "API Call";
            String SOAP_ACTION = "Validate user api";
            String METHOD_NAME = "Some method";

            SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);


            Request.addProperty("TokenID", sm.getUserDetails().get(SessionManager.TOKEN_ID));



            Request.addProperty("UserName", enteredusername);
            Request.addProperty("Pwd", enteredpassword);
            Request.addProperty("GCMID", " ");
            Request.addProperty("Imei", imei);

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.setOutputSoapObject(Request);
            HttpTransportSE httpTransport = new HttpTransportSE(URL, 20000);

            try {
                httpTransport.call(SOAP_ACTION, envelope);

            } catch (SocketTimeoutException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (XmlPullParserException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            try {


                //CHECK FOR RESPONSE


                Log.d("check for response", "doInBackground: ");

//我在这里得到例外????当我在//连接没有wifi或移动数据但互联网不会到来时收到此响应时。

            response=envelope.getResponse();



            //  Log.d("response",response.toString());

        } catch (SoapFault e) {
            // TODO Auto-generated catch block
        }

        return null;
    }

下面是我的日志

致命异常:AsyncTask#6进程:com。VirtuzoConsultantancyServicesPvtLtd。AttendanceApp,PID:13903 java。lang.RuntimeException:在android上执行doInBackground()时出错。操作系统。3美元。在java上完成(AsyncTask.java:309)。util。同时发生的未来任务。在java完成(FutureTask.java:354)。util。同时发生的未来任务。java上的setException(FutureTask.java:223)。util。同时发生的未来任务。在android上运行(FutureTask.java:242)。操作系统。AsyncTask$SerialExecutor$1。在java上运行(AsyncTask.java:234)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1113)。util。同时发生的ThreadPoolExecutor$Worker。在java上运行(ThreadPoolExecutor.java:588)。朗。丝线。运行(Thread.java:818)的原因是:java。lang.NullPointerException:尝试调用接口方法“int org”。ksoap2。序列化。KVM是可变的。getPropertyCount()。ksoap2。序列化。肥皂剧信封。getResponse(SoapSerializationEnvelope.java:521)位于com。vcpl。AttendencAppNew。EmailDialog$MailAttention。doInBackground(EmailDialog.java:224)位于com。vcpl。AttendencAppNew。EmailDialog$MailAttention。android上的doInBackground(EmailDialog.java:175)。操作系统。2美元。在java上调用(AsyncTask.java:295)。util。同时发生的未来任务。在android上运行(FutureTask.java:237)。操作系统。AsyncTask$SerialExecutor$1。运行(AsyncTask.java:234)


共有1个答案

雷逸仙
2023-03-14

改变这个

 response=envelope.getResponse();

到这个

SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
 类似资料:
  • 我正在做一个小组项目,我们遇到了一个软件序列化部分的问题。我们有类协议: 我们还有SearchResult类: 当我们通过客户端-服务器套接字连接编写协议类时,就会出现问题。问题是Protocol类中的TableModel对象在序列化/反序列化过程中的某个时刻变为null,而我们所做的任何事情都还没有解决这个问题。 到目前为止,我们已尝试: -在SearchResult中实现Serializabl

  • 我希望在Android中将一个对象数组从一个活动传递到另一个活动。我知道实现这一点的最佳方法是让传递的对象实现或,如这里所解释的。 但是,如果我传递这些对象的数组,考虑到您现在传递的是实现这些接口的对象数组,而不是对象本身,这是否仍然有效?如果不是,我是否需要扩展一个类,例如并实现这些接口,然后传递那个“数组”对象?

  • 问题内容: 我正在使用VK API。有时服务器可以返回空数组而不是对象,例如: 要么 我用JsonConvert.DeserializeObject反序列化大多数json,而这部分json用 但是,当它处理大量肽时,它会使应用程序运行缓慢。刚才我意识到,这里还有其他一些字段,如果为空,它们可能会返回数组。我只是不知道如何快速而清晰地做到这一点。有什么建议? 我的反序列化类(当字段为空时不起作用):

  • 问题内容: 我正在尝试将自定义对象从活动传递到片段。我选择实现可序列化并使用以下对象传递对象: 我遇到了错误 尝试在空对象引用上调用虚拟方法 当我尝试将我的对象设置为与活动传递的参数相等时。 这是我的对象 接下来是我要传递的活动,我最终希望传递所有四个对象,但是现在我想至少获得一个成功传递的对象。 然后是引发Null Pointer Exception的片段,我已经用“->”包com.cs246.

  • 问题内容: 我正在尝试将自定义对象从活动传递到片段。我选择实现可序列化并使用以下对象传递对象: 我遇到了错误 尝试在空对象引用上调用虚拟方法 当我尝试将我的对象设置为与活动传递的参数相等时。 这是我的对象 接下来是我要传递的活动,我最终希望传递所有四个对象,但是现在我想至少获得一个成功传递的对象。 然后是引发Null Pointer Exception的片段,我已经用“->”包com.cs246.

  • 问题内容: 当我尝试运行以下代码时: 我得到以下异常: 如何成功使用包含s的对象? 问题答案: 在序列化之前将集合变成列表,或使用自定义处理程序来这样做: