Volley library NetworkDispatcher.run error

允我心安 提交于 2019-12-24 02:17:04

问题


In my program there is NetworkDispatcher.run error I am using volley library. my program part is .I done all the way but nothing worked please helpme to do my program.I searced through many web content but nothing helped me.I am doing is a Login verification program in android.

if(!(usr.getText().toString().length()<11)&&!(pwd.getText().toString().length()<3)) {
                    susr = usr.getText().toString();
                    spwd = pwd.getText().toString();
                    String whois = susr.substring(0, Math.min(susr.length(), 2));
                    if (whois.equals("AG") || whois.equals("RT")) {
                        if (whois.equals("AG")) {

                            id = susr.substring(susr.length() - 9);
                            Toast.makeText(getApplicationContext(), id, Toast.LENGTH_LONG).show();
                            StringRequest stringRequest = new StringRequest(Request.Method.POST, agenturl,
                                    new Response.Listener<String>() {
                                        @Override
                                        public void onResponse(String response) {
                                            //Toast.makeText(getApplicationContext(),response,Toast.LENGTH_LONG).show();
                                            if(response.equals("0")){
                                                Toast.makeText(getApplicationContext(),"Login successful",Toast.LENGTH_LONG).show();
                                                Intent intent=new Intent(getBaseContext(),Deals.class);
                                                startActivity(intent);
                                            }else{
                                                Toast.makeText(getApplicationContext(),"username or password is incorrect",Toast.LENGTH_LONG).show();
                                            }
                                        }
                                    },
                                    new Response.ErrorListener() {
                                        @Override
                                        public void onErrorResponse(VolleyError error) {
                                            //Toast.makeText(MainActivity.this,error.toString(), Toast.LENGTH_LONG).show();
                                            if(error instanceof NoConnectionError) {
                                                Toast.makeText(getApplicationContext(),"No internet Access, Check your internet connection.", Toast.LENGTH_LONG).show();
                                            }
                                        }
                                    }){
                                @Override
                                protected Map<String,String> getParams(){
                                    Map<String,String> params = new HashMap<String, String>();
                                    params.put("id",id);
                                    params.put("pwd",spwd);
                                    return params;
                                }

                            };
                            requestQueue.add(stringRequest);
                        }
                        else if(whois.equals("RT")){

                            StringRequest stringRequest2 = new StringRequest(Request.Method.POST, retailerurl,
                                    new Response.Listener<String>() {
                                        @Override
                                        public void onResponse(String response) {
                                            //Toast.makeText(getApplicationContext(),"hf",Toast.LENGTH_LONG).show();
                                            //Toast.makeText(getApplicationContext(),response,Toast.LENGTH_LONG).show();
                                            if(response.equals("0")){
                                                Toast.makeText(getApplicationContext(),"Login successful",Toast.LENGTH_LONG).show();
                                                Intent intent=new Intent(getBaseContext(),Deals.class);
                                                startActivity(intent);
                                            }else{
                                                Toast.makeText(getApplicationContext(),"username or password is incorrect",Toast.LENGTH_LONG).show();
                                            }
                                        }
                                    },
                                    new Response.ErrorListener() {
                                        @Override
                                        public void onErrorResponse(VolleyError error) {
                                            //Toast.makeText(MainActivity.this,error.toString(), Toast.LENGTH_LONG).show();
                                            if(error instanceof NoConnectionError) {
                                                Toast.makeText(getApplicationContext(),"No internet Access, Check your internet connection.", Toast.LENGTH_LONG).show();
                                            }
                                        }
                                    }){
                                @Override
                                protected Map<String,String> getParams(){
                                    Map<String,String> params = new HashMap<String, String>();
                                    params.put("id",id);
                                    params.put("pwd",spwd);
                                    return params;
                                }

                            };
                            requestQueue2.add(stringRequest2);
                        }
                    } else{
                        Toast.makeText(getApplicationContext(), "The user id or password is incorrect", Toast.LENGTH_LONG).show();
                        usr.setText("");
                    }
                }else {
                    Toast.makeText(getApplicationContext(), "The user id or password is incorrect", Toast.LENGTH_LONG).show();
                    usr.setText("");
                }

and the error log cat is.

E/Volley: [197] NetworkDispatcher.run: Unhandled exception java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
                                                           java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
                                                               at libcore.net.UriCodec.encode(UriCodec.java:132)
                                                               at java.net.URLEncoder.encode(URLEncoder.java:57)
                                                               at com.android.volley.Request.encodeParameters(Request.java:484)
                                                               at com.android.volley.Request.getBody(Request.java:470)
                                                               at com.android.volley.toolbox.HurlStack.addBodyIfExists(HurlStack.java:253)
                                                               at com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:227)
                                                               at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:107)
                                                               at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:97)
                                                               at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)

回答1:


The error is saying that you are getting NullPointerException.

That means the variables you are using in this code is null at runtime.




回答2:


I got it. after else if(whois.equals("RT")){ i forgot to put id = susr.substring(susr.length() - 9);

Mainly this NetworkDispatcher.run error occurs due to null value passed into getParams() method of volley library. So we must be aware about passing values to getParams() method.




回答3:


this error often occur send data to server error

try to put hard coded value in this code to make sure there is no any server error

           public Map<String, String> getParams()
              {
                Map<String, String> params = new HashMap<String, String>();
                params.put("rollno","1234");
                params.put("password","abcd");
                return params;
                  }
                };

if its working then you should debug to make sure this parameter getting value

             params.put("id",id);
              params.put("pwd",spwd);


来源:https://stackoverflow.com/questions/35958704/volley-library-networkdispatcher-run-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!