太恶心了,竟是这个原因导致Android程序UI无法预览

UI突然就不能在IDE预览了,无论是Eclipse还是Android Studio,提示NullPointerException,找来找去找不到原因,网上也搜索不到答案,后来调了好久才知道是这个东西搞的鬼:

android:icon="@drawable/ic_launcher"
这是在AndroidManifest.xml中设置的,ic_launcher是程序创建时的默认图标,在文件夹可以看到是png格式,我换成自己的logo,ico格式,没提示报错,运行也正常!!以至于我一直忽略了这个,到后来发现项目布局无法预览时,愣是找不到原因,看日志提示(部分):

java.lang.NullPointerException
	at android.graphics.Bitmap_Delegate.createBitmap(Bitmap_Delegate.java:599)
	at android.graphics.Bitmap_Delegate.createBitmap(Bitmap_Delegate.java:120)
	at android.graphics.Bitmap_Delegate.createBitmap(Bitmap_Delegate.java:102)
	at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:236)
	at com.android.layoutlib.bridge.bars.ActionBarLayout.getDrawable(ActionBarLayout.java:222)
	at com.android.layoutlib.bridge.bars.ActionBarLayout.setupActionBar(ActionBarLayout.java:160)
没提示哪个包,哪个文件,根本无从入手,但从Bitmap,ActionBar这个关键字,我不停地删除与图像相关的内容,最后才发现是这个,不容易啊!!!

根据个人总结(暂时没找原理,仅供参考),android:icon建议不要用ico格式,它不会报错——无论模拟器还是真机,但是却会导致无法预览(用在Application就全部不能,用在Activity就Activity不能),如果想用ico格式,android提供另外一个参数:

 android:logo="@drawable/logo2"

但是这个参数只会在界面显示有效,而不会变成程序的安装图标,如果想实现程序的安装图标,又想UI能在IDE预览,有二种方法:

方法一:使用android:icon="png格式图标",不知道除ico、png格式外的支持不,没试。

方法二:想支持ico,Application设置android:logo="ico格式图标",启动的Actiivity设置android:icon="ico格式图标"(这会导致该acitivity无法预览)

当然第二种方法就会衍生出:

Application设置android:logo="ico格式图标",启动的Actiivity设置android:icon="png格式图标",但是这样就有点多余了,不及第一种方法来得方便。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值