Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不幸的是,(androidapp)已停止-NullPointerException_Java_Android_Nullpointerexception - Fatal编程技术网

Java 不幸的是,(androidapp)已停止-NullPointerException

Java 不幸的是,(androidapp)已停止-NullPointerException,java,android,nullpointerexception,Java,Android,Nullpointerexception,我在eclipse上收到名为“AplikasiLokomedia”的应用程序的错误消息。其显示错误消息不幸的是,Aplikasilo Komedia已停止: 这是一个错误日志 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-2

我在eclipse上收到名为“AplikasiLokomedia”的应用程序的错误消息。其显示错误消息不幸的是,Aplikasilo Komedia已停止:

这是一个错误日志

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)

03-28 07:27:39.253:E/JSON解析器(1330):解析数据org.JSON.JSONException:Value时出错它不是NullPointerException,而是JSONException。
您正在尝试像解析JSON一样解析XML文档

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

“解析数据org.json.JSONException:Value时出错我是sry,我还不能发表评论,但@Raghunandan询问了第106行:

               string_json = json.getJSONArray("berita");
所以我假设,就像我之前的其他人一样:json是空的


嗯,等等。你的第一篇文章中缺少了这些解析器错误行吗?好吧,你有问题了…

我猜
json
是空的。检查一下。LokoUtama.java
中的第106行是什么。请注意,每当应用程序崩溃时,标题中引用的错误消息就会显示出来,并给出有关问题的任何详细信息。尝试选择一个更具体的标题。将来,你应该只包含与你的问题最相关的代码。不需要发布数百行代码。很难阅读所有代码,请展示你认为重要的事情
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();
    }

}
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();
}

}
"Error parsing data org.json.JSONException: Value <?xml of type java.lang.String cannot be converted to JSONObject"
               string_json = json.getJSONArray("berita");