-2
場景:應用程序在後臺。在接聽或撥出電話期間,我顯示了有兩個按鈕的alertview。 。 「顯示並取消」。當我點擊「顯示」按鈕時,此代碼工作。但我的應用程序崩潰。任何人都可以告訴我原因。致命例外:輸入/輸出期間的AsyncTask#2
final class sendserverhit extends AsyncTask< Void,Void, Void>
{
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
Toast.makeText(CallHelper.this, "status : "+status + " message : "+message+" applidation :"+application+" data1 : "+data, Toast.LENGTH_LONG).show();
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
try {
GetText();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
這是我的getText代碼
public void GetText() throws UnsupportedEncodingException
{
// Create data variable for sent values to server
String data = URLEncoder.encode("client_phone", "UTF-8")
+ "=" + URLEncoder.encode(numberin, "UTF-8");
data += "&" + URLEncoder.encode("user_phone", "UTF-8")
+ "=" + URLEncoder.encode("1001", "UTF-8");
data += "&" + URLEncoder.encode("call_type", "UTF-8")
+ "=" + URLEncoder.encode("2", "UTF-8");
data += "&" + URLEncoder.encode("identity", "UTF-8")
+ "=" + URLEncoder.encode("Null", "UTF-8");
data += "&" + URLEncoder.encode("comments", "UTF-8")
+ "=" + URLEncoder.encode("", "UTF-8");
String text = "";
BufferedReader reader=null;
// Send data
try
{
// Defined URL where to send data
URL url = new URL("http://..iescrm/push_data?");
// Send POST data request
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the server response
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
// Read Server Response
while((line = reader.readLine()) != null)
{
// Append server response in string
sb.append(line + "\n");
}
text = sb.toString();
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
try
{
reader.close();
JSONObject jObject = new JSONObject(text);
status = jObject.getString("status");
//{"status":true,"message":"success","user_phone_number":"1001","identity":null}
// {"application":"SkiesCRM","status":false,"message":"Invalid identity","data":""}
message = jObject.getString("message");
application = jObject.getString("application");
data1 = jObject.getString("data");
}
catch(Exception ex) { Toast.makeText(ctx, "status : ", Toast.LENGTH_LONG).show();}
}
// Show response on activity
}
這裏是我的錯誤日誌
03-03 12:37:00.999: E/AndroidRuntime(21166): FATAL EXCEPTION: AsyncTask #2
03-03 12:37:00.999: E/AndroidRuntime(21166): java.lang.RuntimeException: An error occured while executing doInBackground()
03-03 12:37:00.999: E/AndroidRuntime(21166): at android.os.AsyncTask$3.done(AsyncTask.java:299)
03-03 12:37:00.999: E/AndroidRuntime(21166): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
03-03 12:37:00.999: E/AndroidRuntime(21166): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
03-03 12:37:00.999: E/AndroidRuntime(21166): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
03-03 12:37:00.999: E/AndroidRuntime(21166): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
03-03 12:37:00.999: E/AndroidRuntime(21166): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-03 12:37:00.999: E/AndroidRuntime(21166): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-03 12:37:00.999: E/AndroidRuntime(21166): at java.lang.Thread.run(Thread.java:838)
03-03 12:37:00.999: E/AndroidRuntime(21166): Caused by: java.lang.NullPointerException
03-03 12:37:00.999: E/AndroidRuntime(21166): at libcore.net.UriCodec.encode(UriCodec.java:132)
03-03 12:37:00.999: E/AndroidRuntime(21166): at java.net.URLEncoder.encode(URLEncoder.java:57)
03-03 12:37:00.999: E/AndroidRuntime(21166): at com.bitgriff.androidcalls.CallHelper.GetText(CallHelper.java:153)
03-03 12:37:00.999: E/AndroidRuntime(21166): at com.bitgriff.androidcalls.CallHelper$sendserverhit.doInBackground(CallHelper.java:131)
03-03 12:37:00.999: E/AndroidRuntime(21166): at com.bitgriff.androidcalls.CallHelper$sendserverhit.doInBackground(CallHelper.java:1)
正在崩潰的地方?它給你哪個錯誤? GetText是做什麼的? – 2015-03-03 08:08:25
你的'GetText();'代碼在哪裏? – 2015-03-03 08:09:31
錯誤告訴你什麼!? – 2015-03-03 08:16:37