今天想學(xué)BottomNavigationView弄一個(gè)底部欄的導(dǎo)航杯聚,然后我在New->Activity->BottomNavigationActivity創(chuàng)建了一個(gè)例子,然后直接運(yùn)行隧期。發(fā)現(xiàn)app直接崩潰閃退了,run里面也沒(méi)有錯(cuò)誤赘娄,我就找了一下error日志:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
at androidx.navigation.ui.ActionBarOnDestinationChangedListener.setTitle(ActionBarOnDestinationChangedListener.java:48)
at androidx.navigation.ui.AbstractAppBarOnDestinationChangedListener.onDestinationChanged(AbstractAppBarOnDestinationChangedListener.java:104)
at androidx.navigation.NavController.addOnDestinationChangedListener(NavController.java:233)
at androidx.navigation.ui.NavigationUI.setupActionBarWithNavController(NavigationUI.java:228)
at com.example.college.BottomNavActivity.onCreate(BottomNavActivity.java:26)
at android.app.Activity.performCreate(Activity.java:7224)
at android.app.Activity.performCreate(Activity.java:7213)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
我就從出錯(cuò)的方法androidx.navigation.ui.ActionBarOnDestinationChangedListener.setTitle(ActionBarOnDestinationChangedListener.java:48)進(jìn)去:
@Override
protected void setTitle(CharSequence title) {
ActionBar actionBar = mActivity.getSupportActionBar();
actionBar.setTitle(title);
}
這里報(bào)了空指針錯(cuò)誤仆潮,就是getSupportBar()沒(méi)有獲取到標(biāo)題欄,我就找了一下應(yīng)用的主題遣臼,發(fā)現(xiàn):
NoActionBar
然后我把標(biāo)題欄改為:DarkActionBar鸵闪,就OK了!