Java 无法启动活动-NullPointerException

Java 无法启动活动-NullPointerException,java,android,nullpointerexception,Java,Android,Nullpointerexception,我似乎找不到这个虫子的罪魁祸首。以下是我的全部活动: public class CalendarActivity extends Activity implements OnClickListener { private GestureDetector mGestureDetector; private ProgressDialog mProgressDialog; private int mGridWidth, mGridHeight; private MonthlyCalendarWidg

我似乎找不到这个虫子的罪魁祸首。以下是我的全部活动:

public class CalendarActivity extends Activity implements OnClickListener {

private GestureDetector mGestureDetector;
private ProgressDialog mProgressDialog;
private int mGridWidth, mGridHeight;
private MonthlyCalendarWidget mMonthlyCalendar;
private Button mNext;
private Button mPrev;
private CalendarGridAdapter mDayGridAdapter;
private CalendarEventsListAdapter mEventsListAdapter;
private CalendarAssignmentsListAdapter mAssignmentsListAdapter;
private Calendar mCalendarSource;
private String mMonthId;
private int mMonth, mYear;
private CalendarDbAdapter mCalendarDb;
private CalendarSQLiteAdapter mCalendarSQL;
private CalendarEventData mCalendarEvent;
private ArrayList<CalendarEventData> mEventsList;
private CalendarAssignmentData mCalendarAssignment;
private ArrayList<CalendarAssignmentData> mAssignmentsList;

public ArrayList<CalendarEventData> getCalendarEventData() throws Exception {
    ArrayList<CalendarEventData> eventsList = CalendarDbAdapter
            .getCalendarEvent("2011", 9, 36, "ParentAndroidSerpong");
    return eventsList;

}

public void cacheCalendarEventData(ArrayList<CalendarEventData> data) {
    for (int i = 0; i < data.size(); i++) {
        mCalendarSQL.addEvents(data.get(i));
    }
}

private SimpleCursorAdapter fillEventData() {

    Cursor c = mCalendarSQL.fetchAllEvents();
    startManagingCursor(c);

    String[] from = new String[] { CalendarSQLiteAdapter.KEY_EVENTS_NAME, CalendarSQLiteAdapter.KEY_EVENTS_START_DATE };
    int[] to = new int[] { R.id.monthlylistchip_texttop, R.id.monthlylistchip_textbottom };

    return new SimpleCursorAdapter(this, R.layout.monthly_listchip, c, from, to);

}

public ArrayList<CalendarAssignmentData> getCalendarAssignmentData()
        throws Exception {
    ArrayList<CalendarAssignmentData> assignmentList = CalendarDbAdapter
            .getCalendarAssignment("0970001931", "2011", "4", 36,
                    "ParentAndroidSerpong");
    return assignmentList;

}

public void cacheCalendarAssignmentData(
        ArrayList<CalendarAssignmentData> data) {
    for (int i = 0; i < data.size(); i++) {
        mCalendarSQL.addAssignments(data.get(i));
    }
}

private void updateView(int month, int year) {
    mDayGridAdapter = new CalendarGridAdapter(this,
            R.id.monthly_gridchip_date, mGridWidth, mGridHeight, month,
            year);

    mEventsListAdapter = new CalendarEventsListAdapter(this,
            R.layout.monthly_listchip, mEventsList);

    mAssignmentsListAdapter = new CalendarAssignmentsListAdapter(this,
            R.layout.monthly_listchip, mAssignmentsList);

    mCalendarSource.set(year, month - 1,
            mCalendarSource.get(Calendar.DAY_OF_MONTH));

    mMonthId = (String) DateUtils.getFormattedDateString(
            mCalendarSource.getTime(), DateUtils.MONTH_AND_YEAR);

    mMonthlyCalendar.instantiate(this, mMonthId, mDayGridAdapter,
            fillEventData(), mAssignmentsListAdapter);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    mGridHeight = ScreenUtils.getDisplayHeight(this) / 10;
    mGridWidth = ScreenUtils.getDisplayWidth(this) / 7;

    mNext = (Button) findViewById(R.id.monthlyview_header_monthnext);
    mNext.setOnClickListener(this);
    mPrev = (Button) findViewById(R.id.monthlyview_header_monthprev);
    mPrev.setOnClickListener(this);

    mCalendarSQL = new CalendarSQLiteAdapter(this);
    mCalendarSQL.open();

    try {
        cacheCalendarEventData(getCalendarEventData());
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    mCalendarSource = Calendar.getInstance(Locale.getDefault());
    mMonth = mCalendarSource.get(Calendar.MONTH) + 1;
    mYear = mCalendarSource.get(Calendar.YEAR);

    updateView(mMonth, mYear);

}

@Override
public void onClick(View v) {
    if (v == mPrev) {
        if (mMonth <= 1) {
            mMonth = 12;
            mYear--;
        } else {
            mMonth--;
        }
        updateView(mMonth, mYear);
    } else if (v == mNext) {
        if (mMonth > 11) {
            mMonth = 1;
            mYear++;
        } else {
            mMonth++;
        }
        updateView(mMonth, mYear);
    }

}

}
我所知道的是,当我调用此命令时,代码中断:

mMonthlyCalendar.instantiate(this, mMonthId, mDayGridAdapter,
            mEventsListAdapter, mAssignmentsListAdapter);
该方法应该将适配器绑定到我的自定义视图


提供了所有必需的变量,那么为什么系统给我一个
NullPointerException

抛出一个空检查--
if(herp==null){
p.s,为这些乱七八糟的代码感到抱歉。:PWell这太尴尬了。我确实删除了初始化代码,以为当系统对
R.layout.main进行充气时它会被初始化(它有我的自定义视图)。我现在觉得自己很笨。哈哈。谢谢大家。
mMonthlyCalendar.instantiate(this, mMonthId, mDayGridAdapter,
            mEventsListAdapter, mAssignmentsListAdapter);