android - 执行异步任务时应用程序崩溃

标签 android

我的应用程序在执行异步任务时崩溃。我尝试将数据从 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/

相关文章:

android - 如何使用 ArrayAdapter 为 ListView 编写自定义过滤器

java - Android 使用单个光标获取多个内容提供程序

android - 为什么 2.1 中没有出现 actionbar sherlock?

android - 如何为 Firebase 身份验证用户设置自定义用户 UID?

android - Location getAccuracy() 这个函数有什么作用?

android - 适用于 Android 的终端 IDE 应用程序是否与 Lollipop 兼容?

android - 如何在 Android 设备上启用磁盘挂起?

android - Android ListView OnItemClickListener中获取点击坐标

android - Android 用户的滑动指示

java - ViewPagerFragments args(System.out.println() 和 TextView 的行为不同)