我有以下的代码,试图在ListView中创建一个简单的ListAdapter(我之前已经让这段代码能够工作了,而且这是我唯一更改的地方):
public BuddyListAdapter(Context context, HashMap<String, Buddy> hashMap) {
buddyList = new ArrayList<Buddy>(hashMap.values());
mInflater = LayoutInflater.from(context);
ctx = context;
}
在逐步调试时没有任何反应,但在运行时,当我创建一个空的ArrayList
时,在ChoreoGrapher.doCallbacks
中会发生NullPointerException
:
public BuddyListAdapter(Context context, HashMap<String, Buddy> hashMap) {
buddyList = new ArrayList<Buddy>();
mInflater = LayoutInflater.from(context);
ctx = context;
}
什么是ChoreoGrapher
,为什么它会导致我的应用程序崩溃?
我完全不知道问题出在哪里,也不知道如何找出问题所在。Eclipse调试器或崩溃信息并没有真正提供帮助。
整个堆栈跟踪如下:
Thread [<1> main] (Suspended (exception NullPointerException))
Choreographer.doCallbacks(int, long) line: 558
Choreographer.doFrame(long, int) line: 525
Choreographer$FrameDisplayEventReceiver.run() line: 711
Handler.handleCallback(Message) line: 615
Choreographer$FrameHandler(Handler).dispatchMessage(Message) line: 92
Looper.loop() line: 137
ActivityThread.main(String[]) line: 4745
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 511
ZygoteInit$MethodAndArgsCaller.run() line: 786
ZygoteInit.main(String[]) line: 553
NativeStart.main(String[]) line: not available [native method]
我在主活动中也有一个Handler
。当它没有执行任何操作时,listview就不会崩溃。但是,在打开listview之前,我从中删除了所有回调。
Handler
实例中设置断点以确保它们没有被调用吗? - Craig OtisHandler
,当我在它第一次触发后立即打开ListViewActivity
时,应用程序会立即崩溃。 - Bart Friederichs