2014-03-28 125 views
-5

我收到错误消息与名为“AplikasiLokomedia”的应用程序。它显示错误信息遗憾的是AplikasiLokomedia已停止:不幸的是,(androidapp)已停止 - NullPointerException

,这是一个错误日志

03-28 07:27:39.253: E/JSON Parser(1330): Error parsing data org.json.JSONException: Value <?xml of type java.lang.String cannot be converted to JSONObject 
03-28 07:27:39.373: W/dalvikvm(1330): threadid=11: thread exiting with uncaught exception (group=0xb3adeb90) 
03-28 07:27:39.543: E/AndroidRuntime(1330): FATAL EXCEPTION: AsyncTask #1 
03-28 07:27:39.543: E/AndroidRuntime(1330): Process: com.dharma.aplikasilokomedia, PID: 1330 
03-28 07:27:39.543: E/AndroidRuntime(1330): java.lang.RuntimeException: An error occured while executing doInBackground() 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at android.os.AsyncTask$3.done(AsyncTask.java:300) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at java.lang.Thread.run(Thread.java:841) 
03-28 07:27:39.543: E/AndroidRuntime(1330): Caused by: java.lang.NullPointerException 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at com.dharma.aplikasilokomedia.LokoUtama$AmbilData.doInBackground(LokoUtama.java:106) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at com.dharma.aplikasilokomedia.LokoUtama$AmbilData.doInBackground(LokoUtama.java:1) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at android.os.AsyncTask$2.call(AsyncTask.java:288) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
03-28 07:27:39.543: E/AndroidRuntime(1330):  ... 4 more 
03-28 07:27:40.263: I/Choreographer(1330): Skipped 86 frames! The application may be doing too much work on its main thread. 
03-28 07:27:40.643: I/Choreographer(1330): Skipped 96 frames! The application may be doing too much work on its main thread. 
03-28 07:27:41.413: I/Choreographer(1330): Skipped 105 frames! The application may be doing too much work on its main thread. 
03-28 07:27:41.693: I/Choreographer(1330): Skipped 44 frames! The application may be doing too much work on its main thread. 
03-28 07:27:42.143: I/Choreographer(1330): Skipped 64 frames! The application may be doing too much work on its main thread. 
03-28 07:27:43.233: I/Choreographer(1330): Skipped 31 frames! The application may be doing too much work on its main thread. 
03-28 07:27:43.533: I/Choreographer(1330): Skipped 52 frames! The application may be doing too much work on its main thread. 
03-28 07:27:44.973: E/WindowManager(1330): android.view.WindowLeaked: Activity com.dharma.aplikasilokomedia.LokoUtama has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{b3d91a80 V.E..... R.....ID 0,0-456,144} that was originally added here 
03-28 07:27:44.973: E/WindowManager(1330): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:346) 
03-28 07:27:44.973: E/WindowManager(1330): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248) 
03-28 07:27:44.973: E/WindowManager(1330): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
03-28 07:27:44.973: E/WindowManager(1330): at android.app.Dialog.show(Dialog.java:286) 
03-28 07:27:44.973: E/WindowManager(1330): at com.dharma.aplikasilokomedia.LokoUtama$AmbilData.onPreExecute(LokoUtama.java:94) 
03-28 07:27:44.973: E/WindowManager(1330): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587) 
03-28 07:27:44.973: E/WindowManager(1330): at android.os.AsyncTask.execute(AsyncTask.java:535) 
03-28 07:27:44.973: E/WindowManager(1330): at com.dharma.aplikasilokomedia.LokoUtama.onCreate(LokoUtama.java:57) 
03-28 07:27:44.973: E/WindowManager(1330): at android.app.Activity.performCreate(Activity.java:5243) 
03-28 07:27:44.973: E/WindowManager(1330): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
03-28 07:27:44.973: E/WindowManager(1330): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) 
03-28 07:27:44.973: E/WindowManager(1330): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 
03-28 07:27:44.973: E/WindowManager(1330): at android.app.ActivityThread.access$700(ActivityThread.java:135) 
03-28 07:27:44.973: E/WindowManager(1330): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 
03-28 07:27:44.973: E/WindowManager(1330): at android.os.Handler.dispatchMessage(Handler.java:102) 
03-28 07:27:44.973: E/WindowManager(1330): at android.os.Looper.loop(Looper.java:137) 
03-28 07:27:44.973: E/WindowManager(1330): at android.app.ActivityThread.main(ActivityThread.java:4998) 
03-28 07:27:44.973: E/WindowManager(1330): at java.lang.reflect.Method.invokeNative(Native Method) 
03-28 07:27:44.973: E/WindowManager(1330): at java.lang.reflect.Method.invoke(Method.java:515) 
03-28 07:27:44.973: E/WindowManager(1330): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
03-28 07:27:44.973: E/WindowManager(1330): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
03-28 07:27:44.973: E/WindowManager(1330): at dalvik.system.NativeStart.main(Native Method) 

这是我JSONParser.JAVA

package com.dharma.aplikasilokomedia; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.UnsupportedEncodingException; 
import java.util.List; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.client.utils.URLEncodedUtils; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.util.Log; 

public class JSONParser { 

static InputStream is = null; 
static JSONObject jObj = null; 
static String json = ""; 

public JSONParser() { 

} 

// function get json from url 
// by making HTTP POST or GET mehtod 
public JSONObject makeHttpRequest(String url, String method, 
     List<NameValuePair> params) { 

    // Making HTTP request 
    try { 

     // check for request method 
     if (method == "POST") { 
      // request method is POST 
      // defaultHttpClient 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost(url); 
      httpPost.setEntity(new UrlEncodedFormEntity(params)); 

      HttpResponse httpResponse = httpClient.execute(httpPost); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      is = httpEntity.getContent(); 

     } else if (method == "GET") { 
      // request method is GET 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      String paramString = URLEncodedUtils.format(params, "utf-8"); 
      url += "?" + paramString; 
      HttpGet httpGet = new HttpGet(url); 

      HttpResponse httpResponse = httpClient.execute(httpGet); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      is = httpEntity.getContent(); 
     } 

    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     json = sb.toString(); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 

    // try parse the string to a JSON object 
    try { 
     jObj = new JSONObject(json); 
    } catch (JSONException e) { 
     Log.e("JSON Parser", "Error parsing data " + e.toString()); 
    } 

    // return JSON String 
    return jObj; 

} 
} 

这是我DetailLoko.java

package com.dharma.aplikasilokomedia; 

import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.ProgressDialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class DetailLoko extends Activity { 

public ImageLoader imageLoader; 
{ 

    imageLoader = new ImageLoader(null); 
} 


JSONArray string_json = null; 

String idberita; 

private ProgressDialog pDialog; 

JSONParser jsonParser = new JSONParser(); 

public static final String TAG_ID = "id"; 
public static final String TAG_JUDUL = "judul"; 
public static final String TAG_GAMBAR = "gambar"; 
private static final String url_detail_berita = "http://10.0.2.2/lokomedia/lokoandro/detailberita.php"; 



@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.single_list_item); 

    Intent i = getIntent(); 

    idberita = i.getStringExtra(TAG_ID); 


    new AmbilDetailBerita().execute(); 

} 

class AmbilDetailBerita extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(DetailLoko.this); 
     pDialog.setMessage("Mohon Tunggu ... !"); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 

    protected String doInBackground(String... params) { 

       try { 

        List<NameValuePair> params1 = new ArrayList<NameValuePair>(); 
        params1.add(new BasicNameValuePair("idberita",idberita)); 

        JSONObject json = jsonParser.makeHttpRequest(
          url_detail_berita, "GET", params1); 
        string_json = json.getJSONArray("berita"); 

         runOnUiThread(new Runnable() { 
          public void run() { 

           ImageView thumb_image = (ImageView) findViewById(R.id.imageView1); 
           TextView judul = (TextView) findViewById(R.id.judul); 
           TextView detail = (TextView) findViewById(R.id.detail); 
           TextView isi = (TextView) findViewById(R.id.content); 

         try { 
          // ambil objek member pertama dari JSON Array 
          JSONObject ar = string_json.getJSONObject(0); 
          String judul_d = ar.getString("judul"); 
          String detail_d = ar.getString("hari")+" , "+ar.getString("tanggal")+" Diposting Oleh : "+ar.getString("username"); 
          String isi_d = ar.getString("isi"); 

         judul.setText(judul_d); 
         detail.setText(detail_d); 
         isi.setText(isi_d); 

         imageLoader.DisplayImage(ar.getString(TAG_GAMBAR),thumb_image);    
         } catch (JSONException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
          } 
        } 
       }); 

       } catch (JSONException e) { 
        e.printStackTrace(); 
      } 

     return null; 
    } 

    protected void onPostExecute(String file_url) { 

     pDialog.dismiss(); 
    } 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.detail_menu, menu); 
    return true; 
} 
public boolean onOptionsItemSelected(MenuItem item) 
{ 

    switch (item.getItemId()) 
    { 
    case R.id.home: 
     // Single menu item is selected do something 
     // Ex: launching new activity/screen or show alert message 
     finish(); 
     Intent i = new Intent(getApplicationContext(), LokoUtama.class); 
     startActivity(i); 
     return true; 

    case R.id.exit: 
     keluar(); 
     return true; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
}  
public void keluar(){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setMessage("Apakah Anda Ingin" + " keluar?") 
    .setCancelable(false) 
    .setPositiveButton("Ya", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
    finish(); 
    } 
    }) 
    .setNegativeButton("Tidak", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
    dialog.cancel(); 
    } 
    }).show(); 
    } 

} 

这是我的LokoUtama.JAVA

package com.dharma.aplikasilokomedia; 

import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Calendar; 
import java.util.HashMap; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.ProgressDialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class LokoUtama extends Activity { 

private ProgressDialog pDialog; 

JSONParser jParser = new JSONParser(); 

ArrayList<HashMap<String, String>> DaftarBerita = new ArrayList<HashMap<String, String>>(); 

private static String url_berita = "http://10.0.2.2/lokomedia/lokoandro/berita.php"; 


public static final String TAG_ID = "id"; 
public static final String TAG_JUDUL = "judul"; 
public static final String TAG_GAMBAR = "gambar"; 


JSONArray string_json = null; 

ListView list; 
LazyAdapter adapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.loko_utama); 

    DaftarBerita = new ArrayList<HashMap<String, String>>(); 

    new AmbilData().execute(); 

    list = (ListView) findViewById(R.id.list); 

    list.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       HashMap<String, String> map = DaftarBerita.get(position); 

       // Starting new intent 
       Intent in = new Intent(getApplicationContext(), DetailLoko.class); 

       in.putExtra(TAG_ID, map.get(TAG_ID)); 
       in.putExtra(TAG_GAMBAR, map.get(TAG_GAMBAR)); 
       startActivity(in); 
      } 
     }); 

} 

public void SetListViewAdapter(ArrayList<HashMap<String, String>> berita) { 
    adapter = new LazyAdapter(this, berita); 
    list.setAdapter(adapter); 
} 


class AmbilData extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(LokoUtama.this); 
     pDialog.setMessage("Mohon tunggu..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(false); 
     pDialog.show(); 
    } 

    protected String doInBackground(String... args) { 

     List<NameValuePair> params = new ArrayList<NameValuePair>(); 

     JSONObject json = jParser.makeHttpRequest(url_berita, "GET",params); 

     try { 


       string_json = json.getJSONArray("berita"); 

       for (int i = 0; i < string_json.length(); i++) { 
        JSONObject c = string_json.getJSONObject(i); 

        String id_berita = c.getString(TAG_ID); 
        String judul = c.getString(TAG_JUDUL); 
        String link_image = c.getString(TAG_GAMBAR); 

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

        map.put(TAG_ID, id_berita); 
        map.put(TAG_JUDUL, judul); 
        map.put(TAG_GAMBAR, link_image); 

        DaftarBerita.add(map); 
       } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    protected void onPostExecute(String file_url) { 

     pDialog.dismiss(); 

     runOnUiThread(new Runnable() { 
      public void run() { 

       SetListViewAdapter(DaftarBerita); 

       //Update Time.. 

       // Current Date 
       Calendar c = Calendar.getInstance(); 
       SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 
       String formattedDate = df.format(c.getTime()); 

       TextView updateTime = (TextView) findViewById(R.id.update); 
       updateTime.setText("Terakhir di Update : " + formattedDate); 

      } 
     }); 

    } 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.loko_utama, menu); 
    return true; 
} 
public boolean onOptionsItemSelected(MenuItem item) 
{ 

    switch (item.getItemId()) 
    { 
    case R.id.refresh: 
     // Single menu item is selected do something 
     // Ex: launching new activity/screen or show alert message 
     finish(); 
     startActivity(getIntent()); 
     Toast.makeText(LokoUtama.this, "Update Data Berita", Toast.LENGTH_SHORT).show(); 
     return true; 

    case R.id.exit: 
     keluar(); 
     return true; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
}  
public void keluar(){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setMessage("Apakah Anda Ingin" + " keluar?") 
    .setCancelable(false) 
    .setPositiveButton("Ya", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
    finish(); 
    } 
    }) 
    .setNegativeButton("Tidak", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
    dialog.cancel(); 
    } 
    }).show(); 
    } 

} 

这是ImageLoader.JAVA

package com.dharma.aplikasilokomedia; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.util.Collections; 
import java.util.Map; 
import java.util.WeakHashMap; 
import java.util.concurrent.ExecutorService; 
import java.util.concurrent.Executors; 

import android.app.Activity; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.widget.ImageView; 

public class ImageLoader { 

MemoryCache memoryCache = new MemoryCache(); 
FileCache fileCache; 
private Map<ImageView, String> imageViews = Collections 
     .synchronizedMap(new WeakHashMap<ImageView, String>()); 
ExecutorService executorService; 

public ImageLoader(Context context) { 
    fileCache = new FileCache(context); 
    executorService = Executors.newFixedThreadPool(5); 
} 

final int stub_id = R.drawable.no_image; 

public void DisplayImage(String url, ImageView imageView) { 
    imageViews.put(imageView, url); 
    Bitmap bitmap = memoryCache.get(url); 
    if (bitmap != null) 
     imageView.setImageBitmap(bitmap); 
    else { 
     queuePhoto(url, imageView); 
     imageView.setImageResource(stub_id); 
    } 
} 

private void queuePhoto(String url, ImageView imageView) { 
    PhotoToLoad p = new PhotoToLoad(url, imageView); 
    executorService.submit(new PhotosLoader(p)); 
} 

private Bitmap getBitmap(String url) { 
    File f = fileCache.getFile(url); 

    Bitmap b = decodeFile(f); 
    if (b != null) 
     return b; 

    try { 
     Bitmap bitmap = null; 
     URL imageUrl = new URL(url); 
     HttpURLConnection conn = (HttpURLConnection) imageUrl 
       .openConnection(); 
     conn.setConnectTimeout(30000); 
     conn.setReadTimeout(30000); 
     conn.setInstanceFollowRedirects(true); 
     InputStream is = conn.getInputStream(); 
     OutputStream os = new FileOutputStream(f); 
     Utils.CopyStream(is, os); 
     os.close(); 
     bitmap = decodeFile(f); 
     return bitmap; 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
     return null; 
    } 
} 

private Bitmap decodeFile(File f) { 
    try { 

     BitmapFactory.Options o = new BitmapFactory.Options(); 
     o.inJustDecodeBounds = true; 
     BitmapFactory.decodeStream(new FileInputStream(f), null, o); 

     final int REQUIRED_SIZE = 70; 
     int width_tmp = o.outWidth, height_tmp = o.outHeight; 
     int scale = 1; 
     while (true) { 
      if (width_tmp/2 < REQUIRED_SIZE 
        || height_tmp/2 < REQUIRED_SIZE) 
       break; 
      width_tmp /= 2; 
      height_tmp /= 2; 
      scale *= 2; 
     } 


     BitmapFactory.Options o2 = new BitmapFactory.Options(); 
     o2.inSampleSize = scale; 
     return BitmapFactory.decodeStream(new FileInputStream(f), null, o2); 
    } catch (FileNotFoundException e) { 
    } 
    return null; 
} 

private class PhotoToLoad { 
    public String url; 
    public ImageView imageView; 

    public PhotoToLoad(String u, ImageView i) { 
     url = u; 
     imageView = i; 
    } 
} 

class PhotosLoader implements Runnable { 
    PhotoToLoad photoToLoad; 

    PhotosLoader(PhotoToLoad photoToLoad) { 
     this.photoToLoad = photoToLoad; 
    } 

    @Override 
    public void run() { 
     if (imageViewReused(photoToLoad)) 
      return; 
     Bitmap bmp = getBitmap(photoToLoad.url); 
     memoryCache.put(photoToLoad.url, bmp); 
     if (imageViewReused(photoToLoad)) 
      return; 
     BitmapDisplayer bd = new BitmapDisplayer(bmp, photoToLoad); 
     Activity a = (Activity) photoToLoad.imageView.getContext(); 
     a.runOnUiThread(bd); 
    } 
} 

boolean imageViewReused(PhotoToLoad photoToLoad) { 
    String tag = imageViews.get(photoToLoad.imageView); 
    if (tag == null || !tag.equals(photoToLoad.url)) 
     return true; 
    return false; 
} 


class BitmapDisplayer implements Runnable { 
    Bitmap bitmap; 
    PhotoToLoad photoToLoad; 

    public BitmapDisplayer(Bitmap b, PhotoToLoad p) { 
     bitmap = b; 
     photoToLoad = p; 
    } 

    public void run() { 
     if (imageViewReused(photoToLoad)) 
      return; 
     if (bitmap != null) 
      photoToLoad.imageView.setImageBitmap(bitmap); 
     else 
      photoToLoad.imageView.setImageResource(stub_id); 
    } 
} 

public void clearCache() { 
    memoryCache.clear(); 
    fileCache.clear(); 
} 

} 

代码和我有其它的文件名 1. FileCache.JAVA 2. LazyAdafter.JAVA 3. MemoryCache.JAVA 4. Utils.JAVA

感谢,如果有人愿意帮我解决了代码....

+0

我猜'json'为空。检查一下。 'LokoUtama.java'中的第106行是什么? – Raghunandan

+0

请注意,每当应用程序崩溃时,您在标题中引用的错误消息都会显示,并提供有关此问题的任何详细信息。尝试选择更具体的标题。 –

+5

将来,您应该只包含与您的问题最相关的代码。发布数百行代码是没有必要的。 – adneal

回答

0

这是不是一个NullPointerException异常,它是一个JSONException。 您试图解析XML文档就像一个JSON

"Error parsing data org.json.JSONException: Value <?xml of type java.lang.String cannot be converted to JSONObject" 
0

我SRY,我不能评论还,但@Raghunandan被问及线106:

   string_json = json.getJSONArray("berita"); 

所以,我认为,作为其他在我之前也做过:json为null。

呃,等等。第一篇文章中是否有这些解析器错误行缺失?那么你有你的问题...