如何排除Android上的NullPointerException



我的程序在Android模拟器上立即崩溃,我在Eclipse控制台收到以下信息:

java.lang.NullPointerException
    at com.android.ddmlib.Client.sendAndConsume(Client.java:572)
    at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
    at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
    at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

我如何解决抛出此消息的问题?我是Eclipse和Android的新手。

当我试图启动一个带有按钮的对话框时,程序完全崩溃了,并引用到这里:

    @Override
    protected Dialog onCreateDialog(int id) {
        Dialog dialog;
        switch (id) {
        case TIME_DIALOG_ID:
            return new TimePickerDialog(this,
                    mTimeSetListener, mHour24, mMinute, false);

        case POWER_OFF_OPTIONS:
            AlertDialog.Builder builder;
            AlertDialog alertDialog;
            Context mContext = getApplicationContext();
            LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
            View layout = inflater.inflate(R.layout.options,
                    (ViewGroup)findViewById(R.id.relativeLayout1));
            //Capture view elements
            mChkAudio = (CheckBox) findViewById(R.id.chkAudio);
            mChkBluetooth = (CheckBox) findViewById(R.id.chkBlueTooth);
            mChkNetwork = (CheckBox) findViewById(R.id.chkNetwork);
            mChkWifi = (CheckBox) findViewById(R.id.chkWifi);
            mBtnOK = (Button) findViewById(R.id.btnOK);
            mBtnOK.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                  DismissPowerOptions();
                    }
            }); 
            builder = new AlertDialog.Builder(mContext);
            builder.setView(layout);
            alertDialog = builder.create();
            //return alertDialog;
        default:
            dialog = null;
        }
        return dialog;
    }

错误不是来自您的程序。这是一个关于Android的Eclipse插件的问题:"Dalvik Debug Monitor Server"。

http://developer.android.com/guide/developing/debugging/ddms.html

有时这些东西只是进入一个坏的状态,需要重新启动。关闭模拟器并重新启动Eclipse。从AVD管理器窗口中使用标有"Start.."的按钮启动模拟器。在开始对话框中选择"擦除所有数据"按钮,以确保您得到一个干净的开始。

如果这不能解决这个问题,那么尝试在AVD管理器中删除你的模拟器并创建一个新的。

可能您没有正确配置AVD

我通过点击INVALIDATE CACHE AND RESTART解决了这个问题。

file -> Invalidate cache and restart -> Invalidate and restart

最新更新