int android.view.View.getVisibility() для ссылки на нулевой объект при вызове startactivity в onOptionsItemSelected

#android

#Android

Вопрос:

Я реализую функцию, щелкаю по пункту меню, а затем перехожу к новому действию, вот код:

 @Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {
    case R.id.expert_mode:
        Intent intent = new Intent();
        intent.setClass(MainActivity.this, ExpertModeActivity.class);
        startActivity(intent);
        break;
    default:
        return super.onOptionsItemSelected(item);
    }
    return true;
}
  

и действие, объявленное здесь:

 import android.os.Bundle;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import Utils.AbstractLogger;
import Utils.Logcat;

public class ExpertModeActivity extends AppCompatActivity implements Thread.UncaughtExceptionHandler {

    protected AbstractLogger mLogger = new Logcat("ExpertModeActivity", true);

    @Override
    public void uncaughtException(@NonNull Thread t, @NonNull Throwable e) {
        mLogger.error(e);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.expert_mode);
    }
}
  

в manifest.xml , я объявил эту деятельность следующим образом:

     <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.ltd.lifesearchapp.DebugActivity" />
    <activity android:name="com.ltd.lifesearchapp.ResultExplorerActivity" />
    <activity android:name="com.ltd.lifesearchapp.ExpertModeActivity"/>
  

теперь, когда я запускаю этот модуль, я получил эту ошибку:

 2020-10-19 16:07:17.893 29154-29154/com.ltd.lifesearchapp W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference

2020-10-19 16:07:17.894 29154-29154/com.ltd.lifesearchapp W/System.err:     at android.view.ViewRootImpl.getHostVisibility(ViewRootImpl.java:1856)

2020-10-19 16:07:17.894 29154-29154/com.ltd.lifesearchapp W/System.err:     at android.view.ViewRootImpl.handleAppVisibility(ViewRootImpl.java:1491)

2020-10-19 16:07:17.895 29154-29154/com.ltd.lifesearchapp W/System.err:     at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4928)

2020-10-19 16:07:17.895 29154-29154/com.ltd.lifesearchapp W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)

2020-10-19 16:07:17.895 29154-29154/com.ltd.lifesearchapp W/System.err:     at android.os.Looper.loop(Looper.java:214)

2020-10-19 16:07:17.896 29154-29154/com.ltd.lifesearchapp W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7156)

2020-10-19 16:07:17.896 29154-29154/com.ltd.lifesearchapp W/System.err:     at java.lang.reflect.Method.invoke(Native Method)

2020-10-19 16:07:17.897 29154-29154/com.ltd.lifesearchapp W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)

2020-10-19 16:07:17.897 29154-29154/com.ltd.lifesearchapp W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
  

Я нахожу какой-то ответ на подобную проблему, но я до сих пор понятия не имею.
Меня это смущает, кто-нибудь знает причину этой проблемы?

Комментарии:

1. извините, я сначала использую stackoverflow, чтобы задать вопрос, и какой-то код неправильно отформатирован

2. в какой строке вы получаете эту ошибку, этот код неясен в соответствии с вашим журналом сбоев

3. на самом деле, для этой ошибки нет действительного журнала ошибок, вот почему я запутался

4. как вы видите, это все. В журнале ошибок не указано, какая строка кода была причиной ошибки, я запутался, потому что не могу найти проблему

5. когда я запускаю приложение, я нажимаю меню, и в onoptionsitemselected я успешно перехожу к другому действию, startactivity успешно возвращается, а затем возникает эта ошибка