0

Help Me, I have Error when i want to POST JSON from my register (frmDaftar) class to WebService, error code is : java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference at com.android.volley.Request.(Request.java:136)

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);
}

Here is my 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);
    }
}

}

Help Me Please, This is my first android project :)

AufaDhiya
  • 21
  • 2
  • 7

1 Answers1

0

Double check that you added your app controller in your applicaiton tag. Hope it'll fix your crash.

   <application
    android:name="AppController"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
Adnan Bin Mustafa
  • 1,229
  • 10
  • 20