尝试在Android P2P中拆除连接时应用程序崩溃

时间:2016-02-04 17:10:42

标签: android wifi-direct

我正在尝试实施google的wifidirect连接示例。 Everyhing工作正常但在选项菜单上如果我点击断开应用程序崩溃与'nullpointer exception'。错误显示在'mconnecion.teardown()';

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
    case android.R.id.home:   // using app icon for navigation up or home:
        Log.d(TAG, "home clicked.");
        // startActivity(new Intent(home.class, Intent.FLAG_ACTIVITY_CLEAR_TOP));
        return true;

    case R.id.atn_direct_enable:
        startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
        return true;
    case R.id.atn_direct_discover:

        listFragment.onInitiateDiscovery();
        Log.d(TAG, "onOptionsItemSelected : start discoverying ");
        discoverPeers();

        return true;

    case R.id.disconnect:
        Log.d(TAG, "onOptionsItemSelected : disconnect all connections and stop server ");
        mConnection.tearDown();
        mConnection=null;
        return true;

    default:
        return super.onOptionsItemSelected(item);
}
}

'mconnection'是一个类,'teardown()'方法如下所示

public void tearDown() {
mChatServer.tearDown();
mChatClient.tearDown();
isReady = false;
mContext = null;
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

它显示空指针异常,因为该对象在那里为空。检查对象是否为null并且问题不应存在。

if (mConnection!=null)
    mConnection.tearDown();
    mConnection=null;
    return true;

这应该解决你希望的问题