Java 当我按下按钮时,应用程序强制关闭?安卓

Java 当我按下按钮时,应用程序强制关闭?安卓,java,android,logcat,Java,Android,Logcat,当我运行我的应用程序,按下一个按钮,它就会强制关闭。我修复了我的Android清单,但找不到问题。以下是日志: 03-09 17:46:17.301: D/dalvikvm(2133): Debugger has detached; object registry had 1 entries 03-09 17:46:17.438: D/dalvikvm(2133): GC_EXTERNAL_ALLOC freed 43K, 49% free 2794K/5379K, external 15

当我运行我的应用程序,按下一个按钮,它就会强制关闭。我修复了我的Android清单,但找不到问题。以下是日志:

   03-09 17:46:17.301: D/dalvikvm(2133): Debugger has detached; object registry had 1 entries
03-09 17:46:17.438: D/dalvikvm(2133): GC_EXTERNAL_ALLOC freed 43K, 49% free 2794K/5379K, external 1596K/2108K, paused 95ms
03-09 17:46:17.587: D/dalvikvm(2133): GC_EXTERNAL_ALLOC freed 1K, 49% free 2793K/5379K, external 3471K/4335K, paused 42ms
03-09 17:46:17.825: D/dalvikvm(2133): GC_EXTERNAL_ALLOC freed <1K, 49% free 2795K/5379K, external 5048K/5580K, paused 76ms
03-09 17:46:18.001: D/dalvikvm(2133): GC_EXTERNAL_ALLOC freed <1K, 49% free 2796K/5379K, external 8143K/8403K, paused 44ms
03-09 17:46:49.407: D/dalvikvm(2133): GC_EXTERNAL_ALLOC freed 15K, 48% free 2825K/5379K, external 11785K/11958K, paused 19ms
03-09 17:46:49.544: D/dalvikvm(2133): GC_EXTERNAL_ALLOC freed 1K, 48% free 2826K/5379K, external 13363K/14068K, paused 19ms
03-09 17:46:49.622: D/dalvikvm(2133): GC_EXTERNAL_ALLOC freed <1K, 48% free 2827K/5379K, external 16457K/17091K, paused 19ms
03-09 17:46:49.704: D/AndroidRuntime(2133): Shutting down VM
03-09 17:46:49.704: W/dalvikvm(2133): threadid=1: thread exiting with uncaught exception (group=0x40015578)
03-09 17:46:49.708: E/AndroidRuntime(2133): FATAL EXCEPTION: main
03-09 17:46:49.708: E/AndroidRuntime(2133): java.lang.RuntimeException: Unable to start activity ComponentInfo{izzy.n/izzy.n.main1}: java.lang.NullPointerException
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.os.Looper.loop(Looper.java:130)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.app.ActivityThread.main(ActivityThread.java:3687)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at java.lang.reflect.Method.invokeNative(Native Method)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at java.lang.reflect.Method.invoke(Method.java:507)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at dalvik.system.NativeStart.main(Native Method)
03-09 17:46:49.708: E/AndroidRuntime(2133): Caused by: java.lang.NullPointerException
03-09 17:46:49.708: E/AndroidRuntime(2133):     at izzy.n.main1.populateCalendarSpinner(main1.java:69)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at izzy.n.main1.onCreate(main1.java:52)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-09 17:46:49.708: E/AndroidRuntime(2133):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
03-09 17:46:49.708: E/AndroidRuntime(2133):     ... 11 more
03-09 17:46:17.301:D/dalvikvm(2133):调试器已分离;对象注册表有1个条目
03-09 17:46:17.438:D/dalvikvm(2133):GC_外部分配释放43K,49%释放2794K/5379K,外部1596K/2108K,暂停95ms
03-09 17:46:17.587:D/dalvikvm(2133):GC_外部分配释放1K,49%释放2793K/5379K,外部3471K/4335K,暂停42ms

03-09 17:46:17.825:D/dalvikvm(2133):GC_EXTERNAL_ALLOC freed如果查看堆栈跟踪,您会发现问题是一个NullPointerException:

at izzy.n.main1.populateCalendarSpinner(main1.java:69)
main1
中第69行的内容为空,但您正在尝试使用它。我不知道哪一行是你上面提供的,所以很难提供更具体的答案

这是我的猜测。如果原因来自此行:

  m_selectedCalendarId = m_calendars[(int)p_id].id;
那么
m_calendars[(int)p_id]
上可能没有元素。您可能真正需要的是:

  m_selectedCalendarId = m_calendars[p_pos].id;

作为将来的参考,Eclipse调试器在这种情况下非常有用。这里有一个教程可以帮助您开始使用它:

您是否检查了m_日历的初始化是否正确。
确保l_arrayAdapter不为空

如果我不把它设为零,那么论点是什么?你是说这行:m_spinner_calender.setSelection(0)?如果是,您确定这是第69行吗?
m_button\u getEvents=(button)findViewById(R.id.button\u get\u events)是第69行。此按钮id是否存在?m_spinner_Calendar.setSelection(0);=线69@MattK你确定是这样吗?堆栈跟踪表示它在populateCalendarSpinner方法中。
  m_selectedCalendarId = m_calendars[(int)p_id].id;
  m_selectedCalendarId = m_calendars[p_pos].id;