致命的异常:AsyncTask#1

问题描述:

我有一个致命的异常:AsyncTask#1在下面的部分,但不知道为什么。致命的异常:AsyncTask#1

/** 
    * getting Charts from URL 
    * */ 
    protected String doInBackground(String... args) { 
     // Building Parameters 
     ArrayList<NameValuePair> params = new ArrayList<NameValuePair>(); 
     // getting JSON string from URL 
     JSONObject json = jParser.makeHttpRequest(url_read, "POST", params); 

     // Check your log cat for JSON response 
     Log.d("Charts: ", json.toString()); 

     try { 
      // Checking for SUCCESS TAG 
      int success = json.getInt(TAG_SUCCESS); 

      if (success == 1) { 
       // products found 
       // Getting Array of Products 

       JSONArray charts = json.getJSONArray(TAG_CHARTS); 

       // looping through All Products 
       for(int i=0;i<charts.length();i++) { 
        JSONObject json_data = charts.getJSONObject(i); 

        String id = json_data.getString("id"); 
        String interpret = json_data.getString("interpret"); 
        String titel = json_data.getString("titel"); 
        String album = json_data.getString("album"); 
        String albumcover = json_data.getString("albumcover"); 
        String likes = json_data.getString("likes"); 

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

        map.put(TAG_ID, id); 
        map.put(TAG_INTERPRET, interpret); 
        map.put(TAG_TITEL, titel); 
        map.put(TAG_ALBUM, album); 
        map.put(TAG_ALBUMCOVER, albumcover); 
        map.put(TAG_LIKES, likes);  

        songslist.add(map); 

       } 
      } else { 
       // no products found 
       // Launch Add New product Activity 
       Intent i = new Intent(getApplicationContext(), 
         CreateSong.class); 
       // Closing all previous activities 
       i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(i); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

这是我的第一个问题。希望你知道该怎么做。我从数据库获取数据并将它们放入一个JSON数组中,然后放入一个HashMap中,但似乎错误是由JSON引起的。

编辑:LOG CAT

07-11 23:20:48.320: D/CLIPBOARD(13241): Hide Clipboard dialog at Starting input: finished by someone else... ! 
07-11 23:20:52.510: D/dalvikvm(13241): GC_FOR_ALLOC freed 139K, 3% free 9004K/9223K, paused 13ms 
07-11 23:20:52.650: E/JSON Parser(13241): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject 
07-11 23:20:52.650: W/dalvikvm(13241): threadid=11: thread exiting with uncaught exception (group=0x40c331f8) 
07-11 23:20:52.675: E/AndroidRuntime(13241): FATAL EXCEPTION: AsyncTask #1 
07-11 23:20:52.675: E/AndroidRuntime(13241): java.lang.RuntimeException: An error occured while executing doInBackground() 
07-11 23:20:52.675: E/AndroidRuntime(13241): at android.os.AsyncTask$3.done(AsyncTask.java:278) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at java.lang.Thread.run(Thread.java:856) 
07-11 23:20:52.675: E/AndroidRuntime(13241): Caused by: java.lang.NullPointerException 
07-11 23:20:52.675: E/AndroidRuntime(13241): at de.andreasgloeckner.ShowCharts$LoadAllProducts.doInBackground(ShowCharts.java:172) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at  de.andreasgloeckner.ShowCharts$LoadAllProducts.doInBackground(ShowCharts.java:1) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at android.os.AsyncTask$2.call(AsyncTask.java:264) 
07-11 23:20:52.675: E/AndroidRuntime(13241): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
07-11 23:20:52.675: E/AndroidRuntime(13241): ... 4 more 
+0

您需要共享异常堆栈跟踪和来自logcat的输出。这是权威:)。其他一切都是猜测。 – Anirudh 2012-07-11 21:10:51

+0

Srsly,我有这个网站的一些问题...什么是最好的可能性添加日志猫?当我编辑我的帖子时,它看起来很奇怪,正如你所看到的。 – Andy 2012-07-11 21:27:06

你在你的代码(ShowCharts.java,线172)有一个NullPointerException异常。现在弄清楚哪一行是。您显然正在访问一个空对象,或者只是在这里共享172行。它可能是songslist对象。我在您分享的代码块中看不到初始化。

Caused by: java.lang.NullPointerException 
    07-11 23:20:52.675: E/AndroidRuntime(13241): at de.andreasgloeckner.ShowCharts$LoadAllProducts.doInBackground(ShowCharts.java:172) 
+0

我已经修复了它;)我的php文件中有一个错误。 – Andy 2012-07-13 12:59:46

从doInBackground方法中,你不能改变或接触任何UI元素,所以你不能调用其他活动,你所要做的就是从onPostExecute方法内从您的AsyncTask

调用另一个活动