@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
SmsMessage[] msgs = getMessagesFromIntent(intent);
String text = getSmsText(msgs);
Log.d("test", "MSG: " + text);
SmsParseResult result = parseSms(text);
// BerthStatus statusBefore = ParkingSystem.instance().getBerth(result.berthID).getStatus();

if (result.isForParkingSystem) {
// notify change
Log.d("test", "updateBerthStatus: " + result.berthID + " " + result.mStatus);


playStatusChangeMusic(context, result);

ParkingSystem.instance().updateBerthStatus(result.berthID, result.mStatus);
deleteFunctionSms();
if (isOrderedBroadcast()) {
            abortBroadcast();
        }
}
}

private void playStatusChangeMusic(Context context, SmsParseResult result)
{
int resID = 0;

if (result.mStatus == BerthStatus.uncheck || result.mStatus == BerthStatus.arrearage)
{
resID = R.raw.hooter;
}
else if(result.mStatus == BerthStatus.idle && (ParkingSystem.instance().getBerth(result.berthID).getStatus() == BerthStatus.uncheck 
                                        || ParkingSystem.instance().getBerth(result.berthID).getStatus() == BerthStatus.arrearage))
{
resID = R.raw.alarm;
//new AlertDialog.Builder(context).setTitle("警报!警报!").setMessage("车位号:" + result.berthID + "未有效付款!请拦截!").setPositiveButton("确定", null).show();  
}
else 
{
resID = R.raw.mms;
}
MusicPlayer player = new MusicPlayer(context, resID);
player.start();
}

如上的代码,程序一执行到else if中的ParkingSystem.instance().getBerth(result.berthID).getStatus(),程序就崩溃。问题出在了哪里?谢谢解答!