我的应用程序在执行异步任务时崩溃。我尝试将数据从 android 发送到服务器,但我的应用程序在执行 AsyncTask 时崩溃 ` 输入 input = new input(); 输入.执行();
mainActivity = this;
latitude = "-6.711647";
longitude ="108.5413";`
public class input extends AsyncTask<String, String, String>
{
HashMap<String, String> user = db.getUserDetails();
String email = user.get("email");
String success;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Sending Data to server...");
pDialog.setIndeterminate(false);
pDialog.show();
}
@Override
protected String doInBackground(String... arg0) {
String strEMAIL = email.toString();
String strNama = latitude.toString();
String strProdi = longitude.toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("email", strEMAIL));
params.add(new BasicNameValuePair("latitude", strNama));
params.add(new BasicNameValuePair("longitude", strProdi));
JSONObject json = jParser.makeHttpRequest(url, "POST", params);
try {
success = json.getString("success");
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Error",
Toast.LENGTH_LONG).show();
}
return null;
}
protected void onPostExecute(String file_url) {
// dismiss the dialog once done
pDialog.dismiss();
if (success.equals("1"))
{
Toast.makeText(getApplicationContext(), "kirim data Sukses!!!", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "kirim data Gagal!!!", Toast.LENGTH_LONG).show();
}
}
}
这是我的完整代码 http://pastebin.com/jRdxeQKG 这是我的 logcat http://prntscr.com/7p3vbz
最佳答案
当您在onCreate()
中调用new input()
时,引用db
为null。
解决方案:在调用new input()
之前初始化db
即可:
db = new SQLiteHandler(getApplicationContext());
input input = new input();
顺便说一下,从设计的角度来看有很多问题,但这将解决(其中一个)崩溃。
关于android - 执行异步任务时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232849/