2015-12-21 127 views
2

我正在实现一个android应用程序,并试图创建一个注册和登录屏幕。我的应用程序连接到服务器,这里是部分我的代码,使错误:org.json.JSONException:输入结束在字符0处,android

public void onResponse(String response) { 
      Log.d(TAG, "Register Response: " + response.toString()); 
      hideDialog(); 

      try { 
       JSONObject jObj = new JSONObject(response); 
       boolean error = jObj.getBoolean("error"); 
       if (!error) 
       { 
        // User successfully stored in MySQL 
        // Now store the user in sqlite 
        String uid = jObj.getString("uid"); 

        JSONObject user = jObj.getJSONObject("user"); 
        String name = user.getString("name"); 
        String email = user.getString("email"); 
        String created_at = user 
          .getString("created_at"); 

        // Inserting row in users table 
        db.addUser(name, email, uid, created_at); 

        Toast.makeText(getApplicationContext(), "User successfully registered. Try login now!", Toast.LENGTH_LONG).show(); 

        // Launch login activity 
        Intent intent = new Intent(
          RegisterActivity.this, 
          LoginActivity.class); 
        startActivity(intent); 
        finish(); 
       } else 
       { 

        // Error occurred in registration. Get the error 
        // message 
        String errorMsg = jObj.getString("error_msg"); 
        Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show(); 
        Log.d("Debug", errorMsg); 

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

     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.e(TAG, "Registration Error: " + error.toString()); 
      Toast.makeText(getApplicationContext(), 
        error.getMessage(), Toast.LENGTH_LONG).show(); 
      hideDialog(); 
     } 
    }) { 

这里是我的错误: org.json.JSONException:在字符输入0结束。 其实我已经看到了这个网站类似的问题,但我不能够解决我的问题

UPDATE: 这是我logcat的内容,并没有什么回应的面前:

1576-1576/com.example.neshat.androidhive2 D/RegisterActivity﹕ Register Response: 
12-21 09:43:08.820 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ org.json.JSONException: End of input at character 0 of 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at org.json.JSONTokener.syntaxError(JSONTokener.java:450) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at org.json.JSONTokener.nextValue(JSONTokener.java:97) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:156) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:173) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at com.example.neshat.androidhive2.RegisterActivity$3.onResponse(RegisterActivity.java:124) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at com.example.neshat.androidhive2.RegisterActivity$3.onResponse(RegisterActivity.java:116) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:739) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at android.os.Looper.loop(Looper.java:135) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5221) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:372) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
12-21 09:43:08.824 1576-1576/com.example.neshat.androidhive2 W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
+0

回应的内容是什么? – daentech

+0

你会检查我的更新吗? – Neshat

+0

什么是JSON响应? – Christopher

回答

2

由于你看到你的logcat 1576-1576/com.example.neshat.androidhive2 D/RegisterActivity﹕ Register Response:这是Log.d(TAG, "Register Response: " + response.toString());的结果,response是一个空字符串,所以你的应用程序将得到在线JSONObject jObj = new JSONObject(response);

您应该检查response是否为空并且不是空字符串。

+1

感谢您的帮助:-) – Neshat