E / AndroidRuntime FATAL EXCEPTION:主PID:17633

时间:2017-04-12 13:24:39

标签: javascript java android html mysql

当我尝试在我的应用程序中注册新用户时,抛出mySQL db应用程序不起作用并发送此错误消息:

  

E / AndroidRuntime:致命异常:主要                     过程:com.example.io.biolite6,PID:17633                     java.lang.NullPointerException:尝试在空对象上调用虚方法'int java.lang.String.length()'   参考                         在org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)                         at org.json.JSONTokener.nextValue(JSONTokener.java:94)                         在org.json.JSONObject。(JSONObject.java:156)                         在org.json.JSONObject。(JSONObject.java:173)                         在com.example.io.biolite6.BackgroundsTask.onPostExecute(BackgroundsTask.java:114)                         在com.example.io.biolite6.BackgroundsTask.onPostExecute(BackgroundsTask.java:30)                         在android.os.AsyncTask.finish(AsyncTask.java:636)                         在android.os.AsyncTask.access $ 500(AsyncTask.java:177)                         在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:653)                         在android.os.Handler.dispatchMessage(Handler.java:111)                         在android.os.Looper.loop(Looper.java:194)                         在android.app.ActivityThread.main(ActivityThread.java:5637)                         at java.lang.reflect.Method.invoke(Native Method)                         在java.lang.reflect.Method.invoke(Method.java:372)                         在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:959)                         在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)   I /处理:发送信号。 PID:17633 SIG:9

public class BackgroundsTask extends AsyncTask<String,Void,String> {
String register_url = "http://192.168.1.104/loginapp/register.php";
Context ctx;
ProgressDialog progressDialog;
Activity activity;
AlertDialog.Builder builder;
public BackgroundsTask(Context ctx)
{
    this.ctx = ctx;
    activity = (Activity) ctx;
}

@Override
protected void onPreExecute()
{
   builder = new AlertDialog.Builder(activity);
    progressDialog = new ProgressDialog(ctx);
    progressDialog.setTitle("Please wait");
    progressDialog.setMessage("Connecting to server...");
    progressDialog.setIndeterminate(true);
    progressDialog.setCancelable(false);
    progressDialog.show();
}

@Override
protected String doInBackground(String... params) {
    String method = params[0];

    if (method.equals("register"))
    {
        try {
            URL url = new URL(register_url);
            HttpURLConnection httpURLConnection =(HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setDoOutput(true);
            httpURLConnection.setDoInput(true);
            OutputStream outputStream = httpURLConnection.getOutputStream();
            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
            String name = params[1];
            String email = params[2];
            String password = params[3];
            String data = URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode(name,"UTF-8")+"&"+
                    URLEncoder.encode("email","UTF-8")+"="+URLEncoder.encode(email,"UTF-8")+"&"+
                    URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
            bufferedWriter.write(data);
            bufferedWriter.flush();
            bufferedWriter.close();
            outputStream.close();
            InputStream inputStream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder stringBuilder = new StringBuilder();
            String line = "";
           while ((line = bufferedReader.readLine())!=null)
           {

               stringBuilder.append(line+"\n");

           }
            httpURLConnection.disconnect();
            Thread.sleep(5000);
            return stringBuilder.toString().trim();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    return null;

}

@Override
protected void onProgressUpdate(Void... values) {
    super.onProgressUpdate(values);
}

@Override
protected void onPostExecute(String json) {

    try {
        progressDialog.dismiss();
        JSONObject jsonObject = new JSONObject(json);
        JSONArray jsonArray = jsonObject.getJSONArray("server_response");
        JSONObject JO = jsonArray.getJSONObject(0);
        String code = JO.getString("code");
        String message = JO.getString("message");
        if (code.equals("reg_true"))
        {
            showDialog("Registration Success", message,code);
        }
        else if (code.equals("reg_false"))
        {
            showDialog("Registration Failed",message,code);
        }


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

}

public void showDialog(String title, String message, String code)
{
    builder.setTitle(title);
    if (code.equals("reg_true")||code.equals("reg_false"))
    {
        builder.setMessage(message);
        builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                activity.finish();
            }
        });

        AlertDialog alertDialog = builder.create();
        alertDialog.show();


    }

}

}

0 个答案:

没有答案