Got threadid=1: thread exiting with uncaught exception (group=0x41088930) on listview

南楼画角 提交于 2019-12-12 23:20:00

问题


i'm making an app that shows running apps icon on listview. there are no syntax problem (i think) but when i launch app and try to run activity, the app force closes and i got threadid=1: thread exiting with uncaught exception (group=0x41088930)and more error how can i fix this error? should i use Asynctask to load image to list view? or any solutions?

(Logcat)

02-18 14:17:46.700: W/dalvikvm(18370): threadid=1: thread exiting with uncaught exception (group=0x41088930)
02-18 14:17:46.700: E/AndroidRuntime(18370): FATAL EXCEPTION: main
02-18 14:17:46.700: E/AndroidRuntime(18370): java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.hybdms.sidepanel/kr.hybdms.sidepanel.LeftSidePanel}: java.lang.NullPointerException
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2359)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.app.ActivityThread.access$600(ActivityThread.java:153)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.os.Looper.loop(Looper.java:137)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.app.ActivityThread.main(ActivityThread.java:5204)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at java.lang.reflect.Method.invokeNative(Native Method)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at java.lang.reflect.Method.invoke(Method.java:511)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at dalvik.system.NativeStart.main(Native Method)
02-18 14:17:46.700: E/AndroidRuntime(18370): Caused by: java.lang.NullPointerException
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:330)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.widget.ListView.setAdapter(ListView.java:462)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at kr.hybdms.sidepanel.LeftSidePanel.onCreate(LeftSidePanel.java:59)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.app.Activity.performCreate(Activity.java:5108)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
02-18 14:17:46.700: E/AndroidRuntime(18370):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2263)
02-18 14:17:46.700: E/AndroidRuntime(18370):    ... 11 more

(LeftSidePanel.java)

package kr.hybdms.sidepanel;


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


import kr.hybdms.sidepanel.PanelArrayAdapter;
import kr.hybdms.sidepanel.R;

import kr.hybdms.sidepanel.util.SystemUiHider;


import android.app.Activity;
import android.app.ActivityManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;

import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;

/**
 * An example full-screen activity that shows and hides the system UI (i.e.
 * status bar and navigation/system bar) with user interaction.
 * 
 * @see SystemUiHider
 */
public class LeftSidePanel extends Activity implements
OnItemClickListener {
ListView listView;
List<PanelItemDetail> rowItems;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_left_side_panel);

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(10);
ArrayList<PanelItemDetail> iconarray = new ArrayList<PanelItemDetail>();
PackageManager pacMgr = getPackageManager();
  for (ActivityManager.RunningTaskInfo runningTask: tasks)
  {
    try {
        iconarray.add(new PanelItemDetail(pacMgr.getApplicationIcon(runningTask.topActivity.getPackageName())));
    } catch (NameNotFoundException e) {
      e.printStackTrace();
    }
  }

listView = (ListView) findViewById(R.id.panelcontents);
PanelArrayAdapter adapter = new PanelArrayAdapter(this,
        R.layout.panelrow, rowItems);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
    long id) {
Toast toast = Toast.makeText(getApplicationContext(),
    "Item " + (position + 1) + ": " + rowItems.get(position),
    Toast.LENGTH_SHORT);
toast.setGravity(Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
}
}

(PanelArrayAdapter.java)

package kr.hybdms.sidepanel;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;

public class PanelArrayAdapter extends ArrayAdapter<PanelItemDetail> {
    Context context;
    public PanelArrayAdapter(Context context, int resourceId,
            List<PanelItemDetail> items) {
        super(context, resourceId, items);
        this.context = context;
    }
    /*private view holder class*/
    private class ViewHolder {
        ImageView imageView;
    }
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        PanelItemDetail rowItem = getItem(position);
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.panelrow, null);
            holder = new ViewHolder();
            holder.imageView = (ImageView) convertView.findViewById(R.id.appicon);
            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();
        holder.imageView.setImageDrawable(rowItem.getImageId());
        return convertView;
    }
}

(PanelItemDetail.java)

package kr.hybdms.sidepanel;

import android.graphics.drawable.Drawable;

public class PanelItemDetail {
    private Drawable imageId;
    public PanelItemDetail(Drawable images) {
        this.imageId = images;
    }
    public Drawable getImageId() {
        return imageId;
    }
    public void setImageId(Drawable imageId) {
        this.imageId = imageId;
    }
}

回答1:


Error is here

PanelArrayAdapter adapter = new PanelArrayAdapter(this,
        R.layout.panelrow, rowItems);
listView.setAdapter(adapter);

Because rowItems is not yet initialized.




回答2:


it seems, that your source is not able to find the leftsidepanel

try these steps:

1.First of all, check if your source is where it is mentioned in the error log.

2.If it is, check if you've made any typing mistakes

3.If it still isn't working, it would be easier (In my opinion) to create a new project and rename what is missing (I've done this several times already and it has always worked) Of course, make sure you copy all of your code



来源:https://stackoverflow.com/questions/14952377/got-threadid-1-thread-exiting-with-uncaught-exception-group-0x41088930-on-lis

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!