Android 개발 오류 솔루션에는 setSupportActionBar()를 통해 설정된 ActionBar가 없습니다.

제가 안드로이드 어플리케이션 개발을 하다가 이상한 오류 제보를 접하게 되어서 인터넷을 뒤져보니 아무것도 없었습니다 오류코드는 다음과 같습니다 앞으로 이 문제가 발생하는 분들이 빨리 문제를 찾아보시길 바랍니다.

java.lang.RuntimeException: Unable to start activity ComponentInfo{
    
    com.xx/com.xx.mainpage.MainActivity}: java.lang.IllegalStateException: Activity com.xx.mainpage.MainActivity@f0f3ecc does not have an ActionBar set via setSupportActionBar()
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3707)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loopOnce(Looper.java:201)
        at android.os.Looper.loop(Looper.java:288)
        at android.app.ActivityThread.main(ActivityThread.java:7886)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1035)
     Caused by: java.lang.IllegalStateException: Activity com.xx.mainpage.MainActivity@f0f3ecc does not have an ActionBar set via setSupportActionBar()
        at androidx.navigation.ui.ActionBarOnDestinationChangedListener.setTitle(ActionBarOnDestinationChangedListener.kt:40)
        at androidx.navigation.ui.AbstractAppBarOnDestinationChangedListener.onDestinationChanged(AbstractAppBarOnDestinationChangedListener.kt:87)
        at androidx.navigation.NavController.addOnDestinationChangedListener(NavController.kt:403)
        at androidx.navigation.ui.NavigationUI.setupActionBarWithNavController(NavigationUI.kt:284)
        at com.xx.mainpage.MainActivity.onCreate(MainActivity.java:36)
        at android.app.Activity.performCreate(Activity.java:8054)
        at android.app.Activity.performCreate(Activity.java:8034)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3688)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loopOnce(Looper.java:201) 
        at android.os.Looper.loop(Looper.java:288) 
        at android.app.ActivityThread.main(ActivityThread.java:7886) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1035) 

문제는 MainActivity에서 잠겨 있으며 나중에 이 코드를 주석 처리하면 정상적으로 실행될 수 있음을 발견했습니다.

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题

이 코드는 제목 표시줄을 숨기고 setSupportActionBar()와 충돌을 일으키는 것으로 의심됩니다.

おすすめ

転載: blog.csdn.net/memorywithyou/article/details/128858003