php.i를 사용하여 Facebook API에서 가져온 사용자 정보를 저장하려고합니다. JSON 객체를 반환하는 POST를 수행하기 위해 JSONParser 클래스를 사용했습니다. 다른 클래스의 AsyncTask에서 JSONParser 클래스의 makeHttpRequest 메서드를 사용하면 null 포인터 예외가 발생합니다. 전달한 인수가 null인지 여부는 확인했지만 응답이 없으므로 이해할 수 없습니다. 나는 SO에 물어 비슷한 질문의 답을 찾기 위해 노력하지만AsyncTask의 doInBackground() 메소드의 NullPointer 예외
이 JSONparser 클래스에 makeHTTPRequest 메소드를 호출하려고하는 클래스의 AsyncTask를하다 vain.Kindly 도움말 와요 고마워요에 갔다 :
,261JSONObject json = jsonParser.makeHttpRequest(REGISTER_URL, "POST", params);
이것은 JSONParser 클래스의 makeHttpRequest 방법입니다 :
public JSONObject makeHttpRequest(String url, String method,
List<NameValuePair> params) {
Log.d(TAG,"makeHttpRequest() is called");
// Making HTTP request
try {
// check for request method
if(method == "POST"){
// request method is POST
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}else if(method == "GET"){
// request method is GET
DefaultHttpClient httpClient = new DefaultHttpClient();
String paramString = URLEncodedUtils.format(params, "utf-8");
url += "?" + paramString;
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
스택 추적 : 53,210
는 그리고 이것은 내가 nullpointer 예외 얻을 라인
02-06 19:28:13.720: D/request!(2247): starting
02-06 19:28:13.720: D/request!(2247): java.lang.Exception
02-06 19:28:13.720: D/request!(2247): at com.example.letschatindia.FbProfileActivity$CreateUser.doInBackground(FbProfileActivity.java:448)
02-06 19:28:13.720: D/request!(2247): at com.example.letschatindia.FbProfileActivity$CreateUser.doInBackground(FbProfileActivity.java:1)
02-06 19:28:13.720: D/request!(2247): at android.os.AsyncTask$2.call(AsyncTask.java:288)
02-06 19:28:13.720: D/request!(2247): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
02-06 19:28:13.720: D/request!(2247): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
02-06 19:28:13.720: D/request!(2247): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
02-06 19:28:13.720: D/request!(2247): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
02-06 19:28:13.720: D/request!(2247): at java.lang.Thread.run(Thread.java:841)
02-06 19:28:13.721: W/dalvikvm(2247): threadid=19: thread exiting with uncaught exception (group=0x4165fd40)
02-06 19:28:13.723: E/AndroidRuntime(2247): FATAL EXCEPTION: AsyncTask #5
02-06 19:28:13.723: E/AndroidRuntime(2247): Process: com.example.letschatindia, PID: 2247
02-06 19:28:13.723: E/AndroidRuntime(2247): java.lang.RuntimeException: An error occured while executing doInBackground()
02-06 19:28:13.723: E/AndroidRuntime(2247): at android.os.AsyncTask$3.done(AsyncTask.java:300)
02-06 19:28:13.723: E/AndroidRuntime(2247): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
02-06 19:28:13.723: E/AndroidRuntime(2247): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
02-06 19:28:13.723: E/AndroidRuntime(2247): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
02-06 19:28:13.723: E/AndroidRuntime(2247): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
02-06 19:28:13.723: E/AndroidRuntime(2247): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
02-06 19:28:13.723: E/AndroidRuntime(2247): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
02-06 19:28:13.723: E/AndroidRuntime(2247): at java.lang.Thread.run(Thread.java:841)
02-06 19:28:13.723: E/AndroidRuntime(2247): Caused by: java.lang.NullPointerException
02-06 19:28:13.723: E/AndroidRuntime(2247): at com.example.letschatindia.FbProfileActivity$CreateUser.doInBackground(FbProfileActivity.java:449)
02-06 19:28:13.723: E/AndroidRuntime(2247): at com.example.letschatindia.FbProfileActivity$CreateUser.doInBackground(FbProfileActivity.java:1)
02-06 19:28:13.723: E/AndroidRuntime(2247): at android.os.AsyncTask$2.call(AsyncTask.java:288)
02-06 19:28:13.723: E/AndroidRuntime(2247): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
FbProfileActivity.java의 줄 번호는 '449'입니까? –
나는 CreateUser 클래스, pls 체크 아래 라인을 게시했다. –
jsonParser 객체는 어디에서 선언 했습니까? – Muthu