2017-03-31 73 views
-1

幫我,我有錯誤,當我想從我的寄存器(frmDaftar)類的POST JSON到WebService,錯誤代碼是:java.lang.NullPointerException:嘗試調用虛擬方法 '詮釋java.lang.String.hashCode()' 上在com.android.volley.Request空對象引用 。(Request.java:136)Android - 空對象上的NullPointerException hashCode()參考

public class frmDaftar extends AppCompatActivity { 
Button btnDaftar, btnKembali; 
EditText email, pass, nama; 
AlertDialog alertDialog; 
private static final String TAG = frmDaftar.class.getSimpleName(); 
SessionManager session; 

private String EmailView; 
private ProgressDialog pDialog; 

private static final String Key_nama = "nama"; 
private static final String Key_email = "email"; 
private static final String Key_password = "password"; 
private static final String url = "Webservice_Controller.URL_DAFTAR"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_frm_daftar); 
    btnDaftar = (Button) findViewById(R.id.btnDaftar1); 
    btnKembali = (Button) findViewById(R.id.btnKembali); 
    email = (EditText) findViewById(R.id.txtEmailDaftar); 
    pass = (EditText) findViewById(R.id.txtPasswordDaftar); 
    nama = (EditText) findViewById(R.id.txtNamaDaftar); 

    session = new SessionManager(getApplicationContext()); 
    btnDaftar.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      btnDaftar.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        String emails = email.getText().toString().trim(); 
        String passwords = pass.getText().toString().trim(); 
        String namas = nama.getText().toString().trim(); 

        registerUser(emails, passwords,namas); 
        //alertDialog.show(); 

       } 
      }); 
     } 
    }); 
    btnKembali.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      startActivity(new Intent(frmDaftar.this, frmLogin.class)); 
     } 
    }); 


} 

    private void initCustomAlertDialog(String EmailView) { 
     View v = getLayoutInflater().inflate(R.layout.dialogverivikasi, null); 
     TextView txtEmail = (TextView) findViewById(R.id.lblemailDaftar); 
     //txtEmail.setText(EmailView); 
     alertDialog = new AlertDialog.Builder(this).create(); 
     alertDialog.setView(v); 
     alertDialog.setTitle("Verifikasi Email"); 
    } 
private void registerUser(final String nama, final String email, final String pass){ 
    String tag_string_req = "req_register"; 
    pDialog.setMessage("Registering ..."); 
    showDialog(); 

    StringRequest stringRequest = new StringRequest(Request.Method.POST, Webservice_Controller.URL_DAFTAR, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        try{ 
         JSONObject jObj = new JSONObject(response); 
         boolean error = jObj.getBoolean("error"); 
         Log.d(TAG, "Register Response: " + response.toString()); 
         hideDialog(); 



        }catch (JSONException e) { 
         e.printStackTrace(); 
        } { 

        } 
        //Toast.makeText(DataSent.this, response, Toast.LENGTH_LONG).show(); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        //Toast.makeText(DataSent.this,error.toString(),Toast.LENGTH_LONG).show(); 
        Log.e(TAG, "Registration Error: " + error.getMessage()); 
        Toast.makeText(getApplicationContext(), 
          error.getMessage(), Toast.LENGTH_LONG).show(); 
        hideDialog(); 
       } 
      }){ 
     @Override 
     protected Map<String,String> getParams(){ 
      Map<String, String> params = new HashMap<String, String>(); 
      params.put("name", nama); 
      params.put("email", email); 
      params.put("password", pass);; 

      return params; 
     } 
    }; 

    AppController.getInstance().addToRequestQueue(stringRequest, tag_string_req); 
} 

這是我的AppController

public class AppController extends Application { 
public static final String TAG = AppController.class.getSimpleName(); 

private RequestQueue mRequestQueue; 

private static AppController mInstance; 

@Override 
public void onCreate() { 
    super.onCreate(); 
    mInstance = this; 
} 

public static synchronized AppController getInstance() { 
    return mInstance; 
} 

public RequestQueue getRequestQueue() { 
    if (mRequestQueue == null) { 
     mRequestQueue = Volley.newRequestQueue(getApplicationContext()); 
    } 

    return mRequestQueue; 
} 

public <T> void addToRequestQueue(Request<T> req, String tag) { 
    req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); 
    getRequestQueue().add(req); 
} 

public <T> void addToRequestQueue(Request<T> req) { 
    req.setTag(TAG); 
    getRequestQueue().add(req); 
} 

public void cancelPendingRequests(Object tag) { 
    if (mRequestQueue != null) { 
     mRequestQueue.cancelAll(tag); 
    } 
} 

}

請幫助我,這是我的第一個Android項目:)

回答

0

你在你的應用程序了標籤添加您的應用程序控制器仔細檢查。希望它能解決你的崩潰。

<application 
    android:name="AppController" 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
相關問題