android.view.InflateException: Binary XML file line #53: Error inflating class <unknown>

本文探讨了解决Android应用中界面跳转导致闪退的问题。通过调整图片资源大小及优化Bitmap加载方式来减少内存消耗,有效避免了因资源加载不当引起的崩溃。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

l 从一个界面跳转到另一个界面出现闪退,报错提示:


android.view.InflateException: Binary XML file line #53:Error inflating class <unknown>


从stackoverflow找到的解决方案:当运行的时候,安卓会改变图片的大小(基于屏幕的尺寸和分辨率),安卓使用bitmap去重新改变图片的尺寸。所以,这个是内存非常敏感的行为。一个快速的解决方法是,将比较大的图片复制到drawable-ldpi,mdpi, hdpi 文件夹中。安卓会自动选择合适的文件并且重新改变他们的大小,

(上面是对stackoverflow的解释)


从stackoverflow找到的解决方案:

   当运行的时候,安卓会改变图片的大小(基于屏幕的尺寸和分辨率),安卓使用bitmap去重新改变图片的尺寸。所以,这个是内存非常敏感的行为。一个快速的解决方法是,将比较大的图片复制到drawable-ldpi,mdpi, hdpi 文件夹中。安卓会自动选择合适的文件并且重新改变他们的大小,

(上面是对stackoverflow的解释)


但是,这样并没有解决,不过问题找对了,有时间学习一下bitmap再去解决,我用的方法是将产生报错的图片换了一张小一点的。


l 在尝试解决上一个问题时,用了如下方法:


//减少图片占用的内存   //低碳界面的背景图片
InputStream is = this.getResources().openRawResource(+R.mipmap.low_carbon_background);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
options.inSampleSize = 1;   //width,hight设为原来的十分一
Bitmap btp = BitmapFactory.decodeStream(is,null, options);

//低碳的背景图片
low_carbon_background =(LinearLayout) findViewById(R.id.low_carbon_background);
Drawable drawable = new BitmapDrawable(this.getResources(), btp);
low_carbon_background.setBackground(drawable);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值