2016-04-24 16 views
2

fb_flagが1のときにリスナーでエラーが発生する、mちょうど初心者。学習ボレーcom.android.volley.VolleyError:java.lang.NullPointerException:オブジェクト参照で仮想メソッド 'java.lang.String.length()'を呼び出そうとしました

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に属しているとは言えませんが、それはすでにvolleyに属しているというタイトルで言及されています。 "com.android.volley.VolleyError:java.lang.NullPointerException:オブジェクト参照のjava.lang.String.length()で仮想メソッドを呼び出してください。 –

答えて

0

ダブルあなたのURLをチェックし、それが有効なURLであるかどうかを確認します。私の場合、私はベースURLを逃した。

+0

これは質問への回答を提供しません。批評をしたり、著者に明確化を要請するには、その投稿の下にコメントを残してください。悪用を防ぐために他人の投稿にコメントする前に[評判](http://stackoverflow.com/faq#reputation)を取得する必要があります。どうしてあなたは[質問に答える](http://stackoverflow.com/unanswered)で試してみるのですか? –

関連する問題