Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)’ on a null object reference

今天在新建项目时候突发奇想新建了个默认的安卓自带 Fragment+tab的初始布局页面

NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe
这个是导航拉线可以控制的fragment

** 默认的架构是Viewmodel + liveData +navigation这一套组成,看得出来谷歌在尽量让我们开发者让Jetpack上面走:**

NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe

java

NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe

xml布局

NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe

navigation导航部分

这一切运行都没问题,可是在我改动了个标题状态栏的Theme时候,就开始出问题了:报错: Caused by:
java.lang.NullPointerException: Attempt to invoke virtual method ‘void
androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)’ on
a null object reference

报错代码图:
NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe

结果找了很久才发现是我改动了标题栏导致的:
NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe

我改成了没有标题栏状态显示,可是导航栏需要用到ActionBar所以导致的空指针异常:

NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe

这部分 navigation导航要调用

解决办法:把导航栏改成默认有状态栏显示的主题就好了:

NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe

显示的状态栏主题

最终显示出来效果如下:
NullPointerException:appcompat.app.ActionBar.setTitle(java.lang.CharSequence)‘ on a null object refe

希望能对你有所帮助,谢谢(点个赞吧,祝永远没bug)

相关文章: