public class responseListener implements Response.Listener<JSONObject>{
public String status;
@Override
public void onResponse(JSONObject response) {
try {
status = response.getString("status");
Log.d("Inside onResponse() ", status);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
private String getImageStatus(String url){
responseListener response_listener = new responseListener();
JsonObjectRequest jsonRequest = new JsonObjectRequest
(Request.Method.GET, url, null, response_listener, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
String status=response_listener.status;
Volley.newRequestQueue(MainActivity.this).add(jsonRequest);
Log.d("In getImageStatus():", status);
return status;
}
Logcat画面:メソッド内でオブジェクトを作成するときに、パラメータの変数にアクセスするにはどうすればよいですか?
06-17 10:07:57.231 15799-15849/com.example.user.streetviewman E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.example.user.streetviewman, PID: 15799
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:318)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
Caused by: java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.d(Log.java:143)
at com.example.user.streetviewman.MainActivity$LongOperation.getImageStatus(MainActivity.java:194)
at com.example.user.streetviewman.MainActivity$LongOperation.doInBackground(MainActivity.java:85)
at com.example.user.streetviewman.MainActivity$LongOperation.doInBackground(MainActivity.java:62)
at android.os.AsyncTask$2.call(AsyncTask.java:304)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761) 06-17 10:07:57.396 15799-15799/com.example.user.streetviewman D/yo myannn inside:: ZERO_RESULTS
Log.d( "インサイドonResponse()"、ステータスが)(私が望む応答であるlogcatの最後の行、でZERO_RESULTSを返しますがLog.d "getImageStatus"、status)はnullを返し、エラーが発生します。 "java.lang.NullPointerException:printlnにメッセージが必要です"。 Log.d( "InImageStatus"、status)を取得してnullの代わりにZERO_RESULTSを返すにはどうすればよいですか?
すべてのこれらの方法は、AsyncTaskを拡張するクラスLongOperation内側にあります。私はgetImageStatus()からdoInBackground() LongOperationメソッドを呼び出しています。
まだ応答がありません。応答は早い(getImageStatusからの戻り時ではありません) – Selvin
+セルヴィン助けてください。私は次に何をすべきですか? –