2016-04-24 30 views
2

中的java.lang.String.length()中调用虚拟方法每当fb_flag为1时,在Listener中获取错误,m只是初学者;学习凌空com.android.volley.VolleyError:java.lang.NullPointerException:尝试在对象引用

NullPointerException ::: 试图解决错误;但没能解决它

LoginCall.java

public class Login_Call { 
    Context con; 
    String email ="", pass = ""; 
    String fb_flag = String.valueOf(0); 
    String URL = ""; 
    UserData userData; 
    String Message = "Success"; 

构造设置数据项;

public Login_Call(Context context, String email, String password, String flag) { 
     con = context; 
     this.email = email;`enter code here` 
     pass = password; 
     fb_flag = flag; 
     Toast.makeText(con,fb_flag, Toast.LENGTH_SHORT).show(); 
    } 

    public UserData getUserDataObject() { 
     return userData; 
    } 

在此方法中出现错误; 方法是用url映射字符串数据;

public String getLoginAcc() { 
     RequestQueue queue = Volley.newRequestQueue(con); 
     StringRequest postRequest = new StringRequest(Method.POST, URL, new Listener<String>() { 
      @Override 
      public void onResponse(String s) { 
       Log.d("LoginCheck", s); 
       Toast.makeText(con,s, Toast.LENGTH_SHORT).show(); 
       authenticateLoginResponse(s); 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError volleyError) { 
       Toast.makeText(con, "Server Not Responding" + volleyError, Toast.LENGTH_SHORT).show(); 
      } 
     }) { 
      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("fb_flag", fb_flag); 
       params.put("email", email); 
       params.put("password", pass); 
       return params; 

      } 
     }; 
     postRequest.setTag("Publiko Login"); 
     postRequest.setRetryPolicy(new DefaultRetryPolicy(5000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
     queue.add(postRequest); 
     return Message; 
    } 

    private void authenticateLoginResponse(String data) { 
     String response; 
     try { 
      JSONObject responseObject = new JSONObject(data); 
      response = responseObject.getString("response"); 
      if (response.equals("success")) { 
       // ToDo succes response Login Acces Granted 
       JSONArray responseArray = responseObject.getJSONArray("data"); 
       JSONObject reponseInnerObject = responseArray.getJSONObject(0); 
       UserData user = new UserData(); 
       user.setUsername(reponseInnerObject.getString("user_name")); 
       user.setEmail(reponseInnerObject.getString("email")); 
       user.setAddress(reponseInnerObject.getString("address")); 
       user.setPhone(reponseInnerObject.getString("phone")); 
       user.setUserid(reponseInnerObject.getString("user_id")); 
       userData = user; 
      } else { 
       // ToDo Failed Response Invalid Email/Password 
       this.Message = responseObject.getString("message"); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

在此先感谢:)

+0

@Marcin Orlowski,它不仅仅是一个NPE,它属于Android的Volley API,可能有几个原因。 –

+0

@A_J没有logcat,你不能说它属于Volley –

+0

@ cricket_007,它已经在标题中提到它属于凌空, “com.android.volley.VolleyError:java.lang.NullPointerException:尝试在对象引用“java.lang.String.length()中调用虚方法” –

回答

0

仔细检查您的网址,看看它是否是有效的URL。在我的情况下,我错过了基地网址。

+0

这不能提供问题的答案。要评论或要求作者澄清,在他们的帖子下留下评论 - 你需要获得[声誉](http://stackoverflow.com/faq#reputation),然后才能评论他人的帖子以防止滥用;你为什么不尝试并通过[回答问题]获得一些答案(http://stackoverflow.com/unanswered)? –

相关问题