Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/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 从ArrayList中删除某些内容后ActivityThread崩溃程序_Java_Android_Arrays_Collections_Crash - Fatal编程技术网

Java 从ArrayList中删除某些内容后ActivityThread崩溃程序

Java 从ArrayList中删除某些内容后ActivityThread崩溃程序,java,android,arrays,collections,crash,Java,Android,Arrays,Collections,Crash,好的,我的程序中有这个方法,从ArrayList中删除一个对象。(方法在这篇文章的底部)。它还做了一些其他的事情,但在调试了很多之后,我发现是这一行导致程序崩溃: myTrackedEventsList.remove(currentEvent); 我试着在有和没有这条线的情况下运行块来测试这一点。没有这条线它就不会崩溃。 有趣的是,这行代码并没有直接使程序崩溃,实际上整个方法都在运行,它返回到我调用它的地方,这是我的代码 public void onClick(View v) {} 退出on

好的,我的程序中有这个方法,从ArrayList中删除一个对象。(方法在这篇文章的底部)。它还做了一些其他的事情,但在调试了很多之后,我发现是这一行导致程序崩溃:

myTrackedEventsList.remove(currentEvent);
我试着在有和没有这条线的情况下运行块来测试这一点。没有这条线它就不会崩溃。 有趣的是,这行代码并没有直接使程序崩溃,实际上整个方法都在运行,它返回到我调用它的地方,这是我的代码

public void onClick(View v) {}
退出onClick方法后,它会跳转到

Activity.java -> View.java -> ActivityThread.jaca -> Handler.java and Looper.java
现在,我真的不知道这些类做什么,我也不知道为什么它们会导致我的程序崩溃。。。是ActivityThread.java导致程序崩溃

你能帮我找出程序崩溃的原因吗?=)

提前非常感谢您的帮助! 所有代码可在此处找到:

这是我得到的错误代码:

12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime: FATAL EXCEPTION: main
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime: Process: com.simonm.bigdaycountdown, PID: 17346
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.AbsListView.obtainView(AbsListView.java:2344)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.ListView.makeAndAddView(ListView.java:1864)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.ListView.fillDown(ListView.java:698)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.ListView.fillFromTop(ListView.java:759)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.ListView.layoutChildren(ListView.java:1673)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.AbsListView.onLayout(AbsListView.java:2148)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.View.layout(View.java:15691)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewGroup.layout(ViewGroup.java:4967)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1067)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.View.layout(View.java:15691)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewGroup.layout(ViewGroup.java:4967)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.View.layout(View.java:15691)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewGroup.layout(ViewGroup.java:4967)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.View.layout(View.java:15691)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewGroup.layout(ViewGroup.java:4967)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.View.layout(View.java:15691)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewGroup.layout(ViewGroup.java:4967)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.View.layout(View.java:15691)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewGroup.layout(ViewGroup.java:4967)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.View.layout(View.java:15691)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewGroup.layout(ViewGroup.java:4967)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2093)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1850)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1063)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5807)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.Choreographer.doCallbacks(Choreographer.java:580)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.Choreographer.doFrame(Choreographer.java:550)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5321)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
12-03 21:04:08.365 17346-17346/com.simonm.bigdaycountdown E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
12-03 21:04:08.459 17346-17346/com.simonm.bigdaycountdown I/Process: Sending signal. PID: 17346 SIG: 9
这是deleteEvent()方法:


看起来您的myTrackedEventsList为空。检查向该数组添加数据的位置,并确保正在填充数据。

这可能是由Log.i(someString,null)引起的


尝试调用listAdapter.notifyDataSetChanged()方法。我应该在哪里调用此方法?它有什么作用在调试时,它看起来不像那样,因为它在deleteEvent()方法之后直接跳转到Activity.java…我认为它必须是myTrackedEventsList.remove(currentEvent);因为当我拆下那条线时,它没有崩溃。。所以我想这必须在某个地方创建一些空对象,但是我测试过,在这行之后的ArrayList中也没有空对象。。。
    protected void deleteEvent(){

    if (currentEvent != null) {
        eventNames.remove(currentEvent.getEventTitle());

        //TODO: This line somehow crashes the program long after it has been executed, I have no idea why.
        myTrackedEventsList.remove(currentEvent);

        currentEvent.delete();
        currentEvent = null;
        Collections.sort(myTrackedEventsList);
        if (myTrackedEventsList.size() > 0){
            currentEvent = myTrackedEventsList.get(0);
            updateUI();
        }
        updateEventDrawer();
    }

    if (myTrackedEventsList.size() == 0){
        resetUI();
        updateEventDrawer();
        noEventsUI();
        findViewById(R.id.getStartedText).setVisibility(View.VISIBLE);

        ((ImageView) findViewById(R.id.background)).setImageResource(R.mipmap.background);
    }


}
String.valueOf(null) //return null

Log.i("eventListBEFORE", String.valueOf(myTrackedEventsList));