Attempt to invoke virtual method ‘android.os.Bundle android.content.Intent.getExtras()‘解决方法

在写安卓的时候,想实现拍照并显示的功能。方法就是用intent调用相机,然后在onActivityResult方法里把结果取出来并显示。

Bundle bundle = data.getExtras(); 
Bitmap bitmap = (Bitmap) bundle.get("data"); 
imageview.setImageBitmap(bitmap);

结果报错:

Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference

这时候需要检查,打开相机的时候是否有

captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);

如果使用了Intent的putExtra方法,onActivityResult是取不到数据的,因为putExtra是把缓存写到存储,写完之后缓存清空,onActivityResultdata是从缓存读取,当然就读不到了。

解决方法

1.可以选择把putExtra注释掉,不存图片,只读一次。
2.也可以选择存储照片,再把照片从外存上读进来。

 bitmap = BitmapFactory.decodeStream(this.getContentResolver().openInputStream(photoUri));
 imageview.setImageBitmap(bitmap);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

师大先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值