好像不支持 NavController
GordonHuangYong opened this issue · comments
GordonHuangYong commented
问题描述(必填)
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main);
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(binding.navView, navController);
使用的XUI版本(必填)
//androidx项目
implementation 'com.github.xuexiangjys:XUI:1.2.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'com.github.bumptech.glide:glide:4.12.0'
如何重现(必填)
运行崩溃
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.waytronic.wt_nfc_app/com.waytronic.wt_nfc_app.MainActivity}: java.lang.IllegalStateException: Activity com.waytronic.wt_nfc_app.MainActivity@7f7423d does not have an ActionBar set via setSupportActionBar()
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:107)
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:2286)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8243)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
Caused by: java.lang.IllegalStateException: Activity com.waytronic.wt_nfc_app.MainActivity@7f7423d 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.waytronic.wt_nfc_app.MainActivity.onCreate(MainActivity.java:35)
at android.app.Activity.performCreate(Activity.java:8294)
at android.app.Activity.performCreate(Activity.java:8258)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3758)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:107)
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:2286)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8243)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
薛翔 commented
Navigation是页面框架,XUI是UI框架,不存在支不支持,两者本就没有任何冲突。你这里报错是因为用到了ActionBar,麻烦多看看报错日志。
XUI 默认的主题就是没有ActionBar的,你要是想用ActionBar,请更换有ActionBar的主题,或者自己在布局中增加ActionBar。