如何解决因 Volley post 方法未完成而导致的错误?

How to resolve errors resulting from Volley post method that does not complete?

我的主要活动 class 是

public class MainActivity extends Activity {


private ProgressDialog pDialog;
private static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);





    RequestQueue queue = Volley.newRequestQueue(this);
    String url="http://onam.leah.in/android_login_api/register_json.php";

    JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST,url,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    System.out.println(response);
                    hideDialog();
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    hideDialog();
                }
            }) {
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("user","swaroop");

            return params;
        };
    };
    queue.add(jsObjRequest);
}
private void showDialog() {
    if (!pDialog.isShowing())
        pDialog.show();
}

private void hideDialog() {
    if (pDialog.isShowing())
        pDialog.dismiss();
}
}

我尝试将详细信息发送至 url:http://onam.leah.in/android_login_api/register_json.php,null

下面是我的日志猫

Process: harico.jsonexam2, PID: 21185 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.app.ProgressDialog.isShowing()' on a null object reference at harico.jsonexam2.MainActivity.hideDialog(MainActivity.java:75) at harico.jsonexam2.MainActivity.access[=12=]0(MainActivity.java:29) at harico.jsonexam2.MainActivity.onErrorResponse(MainActivity.java:57) at com.android.volley.Request.deliverError(Request.java:598) at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:101) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5312) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)

你确定这是正确的url?

url="http://onam.leah.in/android_login_api/register_json.php,null";

最后一部分看起来不正确

pDialog 为空。为 ProgressDialog .

创建实例
ProgressDialog pDialog = new ProgressDialog(MainActivity.this);
Handler handler = new Handler(); // create instance in onCreate()

...

在回调响应中使用它

handler.post(new Runnable() {
           void run() {
               hideDialog();
           }
});