錯誤「NetworkDispatcher.run:未處理的異常java.lang.NullPointerException:嘗試調用虛擬方法」 int java.lang.String.length()'「」 UI包含兩個密碼編輯文本字段和一個按鈕,我用它來保存用戶輸入到服務器的密碼。但是當我點擊提交按鈕時,上述錯誤由StringRequest的onErrorResponce函數顯示。下面的 是將密碼保存到服務器的代碼。使用Volley錯誤發佈數據發生「NetworkDispatcher.run:未處理的異常java.lang.NullPointerException:嘗試調用虛擬方法」
private void savePasswordToServer() {//pass1&pass are two edittext field objects
if(pass1.getText().toString().equals(pass.getText().toString()))
{
String url = new URLConstants().BaseURL+"save_password.php";
StringRequest request = new StringRequest(Request.Method.POST, url,new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try
{
JSONObject jsonObject = new JSONObject(response);
boolean e = jsonObject.getBoolean("error");
if(!e)
{
Toast.makeText(getApplicationContext(), "password change successful", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(),HomeScreen.class);
startActivity(intent);
}
else
Toast.makeText(getApplicationContext(),jsonObject.getString("error_details"),Toast.LENGTH_LONG).show();
}catch (JSONException e)
{
Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),"error VOLLEY "+error.getMessage(),Toast.LENGTH_LONG).show();
}
})
{
@Override
public Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("rollno",rollno);
params.put("password",pass1.getText().toString());
return params;
}
};
MySingleton.getInstance(this).addToRequestQueue(request);
}
else
{
pass1.setError("wrong password");
return;
}
}
及以下的AndroiMonitor
產生錯誤03-12 11:35:55.020 2742-2803/? E/Volley: [155] NetworkDispatcher.run: Unhandled exception java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at libcore.net.UriCodec.encode(UriCodec.java:132)
at java.net.URLEncoder.encode(URLEncoder.java:57)
at com.android.volley.Request.encodeParameters(Request.java:413)
at com.android.volley.Request.getBody(Request.java:399)
at com.android.volley.toolbox.HurlStack.addBodyIfExists(HurlStack.java:236)
at com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:210)
at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:106)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105)
請幫我
你能顯示url的值嗎? –
Baseuri =「http://10.0.2.2:80/po/」作爲即時通訊從模擬器訪問本地主機的IP地址是10.0.2.2,完整的URI是「http://10.0.2.2:80/po/save_password .PHP」。我可以訪問其他的PHP腳本沒有錯誤,但只爲了這個錯誤顯示。 – hemanth5636