应用程序已停止工作Android Jsonparser



我正在尝试使用JSON创建列表视图。

这是logcat stacktrace

1215-1239/com.skripsi.mazdamobil E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:299)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
        at java.util.concurrent.FutureTask.run(FutureTask.java:239)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
        at java.lang.Thread.run(Thread.java:841)
 Caused by: java.lang.NullPointerException
        at com.skripsi.mazdamobil.Data_Tipsntrick$DownloadList.doInBackground(Data_Tipsntrick.java:186)
        at com.skripsi.mazdamobil.Data_Tipsntrick$DownloadList.doInBackground(Data_Tipsntrick.java:164)
        at android.os.AsyncTask$2.call(AsyncTask.java:287)
        at java.util.concurrent.FutureTask.run(FutureTask.java:234)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
            at java.lang.Thread.run(Thread.java:841)

data_tipsntrick.java:164

private class DownloadList extends AsyncTask<Void,Void,Void> <- line 164
    {
        protected void onPreExecute()
        {
            super.onPreExecute();
            pDialog = new ProgressDialog(Data_Tipsntrick.this);
            pDialog.setMessage("Tunggu Sebentar...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

data_tipsntrick.java:186

protected Void doInBackground(Void... unused)
        {
            String url_param;
            url_param="fungsi.php?pl="+filepl+"&kategori="+filekategori;
            JSONParser jParser = new JSONParser();
            JSONObject json = jParser.getJSONFromUrl(url+url_param);
            Log.d("log", "url:" + url + url_param);
            try
            {
                JSONArray result = json.getJSONArray("result");  <<-- line 186
                for (int i = 0; i < result.length(); i++)
                {
                    JSONObject c = result.getJSONObject(i);
                    String id = c.getString("id");
                    String pesan = c.getString("pesan");
                    String nama_tipsntrick = c.getString("nama");
                    String kategori_tipsntrick= c.getString("kategori");

                    HashMap<String,String> map = new HashMap<String,String>();

                    map.put(in_id,id);
                    map.put(in_pesan,pesan);
                    map.put(in_nama,nama_tipsntrick);
                    map.put(in_kategori,kategori_tipsntrick);
                    resultList.add(map);
                }
                Log.d("log", "bla:" + resultList);
            }
            catch (JSONException e)
            {
                e.printStackTrace();
            }
            return null;
        }

下一个

05-05 11:06:11.299    1215-1215/com.skripsi.mazdamobil E/WindowManager﹕ Activity com.skripsi.mazdamobil.Data_Tipsntrick has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{416ef190 V.E..... R.....ID 0,0-304,96} that was originally added here
    android.view.WindowLeaked: Activity com.skripsi.mazdamobil.Data_Tipsntrick has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{416ef190 V.E..... R.....ID 0,0-304,96} that was originally added here
            at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
            at android.app.Dialog.show(Dialog.java:281)
            at com.skripsi.mazdamobil.Data_Tipsntrick$DownloadList.onPreExecute(Data_Tipsntrick.java:173)
            at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
            at android.os.AsyncTask.execute(AsyncTask.java:534)
            at com.skripsi.mazdamobil.Data_Tipsntrick.onCreate(Data_Tipsntrick.java:66)
            at android.app.Activity.performCreate(Activity.java:5133)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
            at android.app.ActivityThread.access$600(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5103)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)

data_tipsntrick.java:173

protected void onPreExecute()
        {
            super.onPreExecute();
            pDialog = new ProgressDialog(Data_Tipsntrick.this);
            pDialog.setMessage("Tunggu Sebentar...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show(); <-- line  173
        }

data_tipsntrick.java:66

new DownloadList().execute();

我做错了什么。弄错了我不知道太多的java。
JSON响应

{"result":[{"id":"7","nama":"sadasdas","kategori":"berkendara","pesan":"dasdasda‌​sdasd"},{"id":"5","nama":"Menggati Ban Bocor","kategori":"berkendara","pesan":"asdsadasdas"}]}

,如果您得到适当的JSON响应:

  ...
  ...
  try {
        JSONParser jParser = new JSONParser();
        JSONObject json = jParser.getJSONFromUrl(url+url_param);
        JSONArray result = json.getJSONArray("result");
        if(result!=null) {
            for (int i = 0; i < result.length(); i++) {
                JSONObject c = (JSONObject) result.get(i);
                String id = "", pesan = "", nama_tipsntrick = "", kategori_tipsntrick = "";
                if (c.has("id"))
                    id = c.getString("id");
                if (c.has("pesan"))
                    pesan = c.getString("pesan");
                if (c.has("nam"))
                    nama_tipsntrick = c.getString("nama");
                if (c.has("kategori"))
                    kategori_tipsntrick = c.getString("kategori");

                HashMap<String, String> map = new HashMap<String, String>();

                map.put(in_id, id);
                map.put(in_pesan, pesan);
                map.put(in_nama, nama_tipsntrick);
                map.put(in_kategori, kategori_tipsntrick);
                resultList.add(map);
            }
        }
        Log.d("log", "bla:" + resultList);
    } catch (JSONException e) {
        e.printStackTrace();
    }

最新更新