Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改actionbar中的图标_Android_Nullpointerexception_Android Actionbar - Fatal编程技术网

Android 更改actionbar中的图标

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"

我想将我的应用程序的徽标放在屏幕顶部的actionbar中。当前显示的是默认的绿色android启动器图标

我尝试了以下方法,但没有发现任何变化:

我进入我的清单文件,修改了安卓:图标代码

 <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);