Android 更改actionbar中的图标
我想将我的应用程序的徽标放在屏幕顶部的actionbar中。当前显示的是默认的绿色android启动器图标 我尝试了以下方法,但没有发现任何变化: 我进入我的清单文件,修改了安卓:图标代码Android 更改actionbar中的图标,android,nullpointerexception,android-actionbar,Android,Nullpointerexception,Android Actionbar,我想将我的应用程序的徽标放在屏幕顶部的actionbar中。当前显示的是默认的绿色android启动器图标 我尝试了以下方法,但没有发现任何变化: 我进入我的清单文件,修改了安卓:图标代码 <application android:allowBackup="true" android:logo="@drawable/logo" android:label="@string/app_name" android:theme="@style/AppTheme"
<application
android:allowBackup="true"
android:logo="@drawable/logo"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
但是,上述代码行会生成以下运行时错误:
**java.lang.RuntimeException:无法启动活动组件信息{com.example.waitronproto3/com.example.waitronproto3.MainActivity}:java.lang.NullPointerException
**
任何人都可以看到为什么会发生这种情况,资源R.drawable.logo的存在是因为我可以在文件夹中看到它,并且IDE中没有生成错误
非常感谢您的帮助。是的,据我所知,没有
android:logo
属性。您不能只创建一个操作栏
。。。你用过这个吗
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
getActionBar().setLogo(R.drawable.logo)`
}
一切都很好,只是我忘了获取ActionBar的引用。下面的代码解决了这个问题
ab = this.getActionBar();
ab.setIcon(R.drawable.logo);
nullpointer
,如果该行上的ActionBar是null
,则不是可绘制的。无论如何,试着清理你的项目,试着使用android:icon
而不是logo
如果你仍然得到它,也可以发布给你NPE的行-如果你查看整个堆栈跟踪,你可以看到一个“起因”行,它告诉你关于异常的更多信息。你的回答帮助我解决了这个问题。我所需要做的就是获得一个对我的actionbar的引用,而在我尝试设置图标之前,我并没有这样做。
ab = this.getActionBar();
ab.setIcon(R.drawable.logo);