Ошибка java.lang. NullPointerException в Android

Когда я наставляю мое приложение в Android, этот функционирует правильно, но когда я стараюсь перемещать этот app во второй план, у меня есть следующая ошибка:

introducir la descripción de la imagen aquí

Это - то, что у меня есть в MainActivity:

public class MainActivity extends AppCompatActivity...
.
.
@Override
protected void onPause() {
    super.onPause();
    mTcpClient.stopClient();
    mTcpClient = null;
    mTcpClient.stopClient();

    arrayList.clear();
    mAdapter.notifyDataSetChanged();
}

И это - то, что у меня есть в классе TcpClient:

public class TcpClient {
.
.
public void stopClient() {

    statusWIFIX = false;
    Log.e( "DEBUG-->", "Coneccion Cerrada: "+ statusWIFIX );
    sendMessage(Constants.CLOSED_CONNECTION+": " + Modelox);                
// send message that we are closing the connection
    mRun = false;
    if (mBufferOut != null) {
        mBufferOut.flush();
        mBufferOut.close();
    }
    mMessageListener = null;
    mBufferIn = null;
    mBufferOut = null;
    mServerMessage = null;
}

Кто-то мог бы говорить мне, как исправлять это?

1
задан 07.03.2019, 13:37
2 ответа

Как он говорит титул, есть что-то недействительное.

И в mГ©todo onPause, ты помещаешь в недействительном в mTcpClient перед тем, как использовать stopClient, хотя ты это используешь два раза (stopClient), только удали второго StopClient.

protected void onPause() {
    super.onPause();
    mTcpClient.stopClient();
    mTcpClient = null;
    mTcpClient.stopClient();

    arrayList.clear();
    mAdapter.notifyDataSetChanged();
}

типов Привета.

2
ответ дан 19.11.2019, 22:26

твоя ошибка - следующая:

mTcpClient.stopClient();
mTcpClient = null;
**mTcpClient.stopClient();**

благодаря тому, что mTcpCliente он null, когда ты звонишь в stopClient () этот бросит "nullPointerException", что является exception, который обозначает отсутствие элемента, который ты пробуешь назвать.

типов привета и хорошая энергия.

////ДОБАВЛЯЯ////также я ощущаюсь, что ты используешь notifydatasetchange (), я предлагаю тебе, что он был, не называй это в onPause () назови это в onResume (), это благодаря тому, что я понимаю, что ты пробуешь освежить дату, которая внутри adapter, но app, войдя в onPause, хочет сказать, что estas посылая в background, но так как... не имеет смысл освежать дату в этом моменте, лучше называть, когда он возвращается в поле зрения :)

1
ответ дан 19.11.2019, 22:26

Теги

Похожие вопросы