Android开发中经常会有获取相册图片的需求实现这一功能也很简单,总共就两步操作
上述代码在大部分手机上都能正常运行,但是在有些手机上却会导致crash
因为有些手机在onActivityResult
返回得到的uri为空,不同的手机返回系统相册图片的不同
当onActivityResult
返回得到的uri为空时,可以通过下面方法获取得到返回图片
因此为了兼容上述两種情况在onActivityResult中可以对返回的图片uri是否为空做个判断:
这样就能完美解决该问题了。
虽然是个很简单的问题但解决的时候确实走了不少弯蕗。当初做的一个小项目中用到上述代码自己测得好好的,发布出去后有个客户反应魅族手机选择图片应用崩溃由于是小项目没有做crashㄖ志收集,自己的测试手机无法复现问题只能凭空猜测,一开始以为是由于图片太大OOM引起的crash, 于是想尽各种办法压缩图片结果路越走越彎,蓦然回首时发现解决方案是如此简单。
从这个问题中我有几点小体会:
- crash日志上传的必要性。
- 手机兼容性测试尽量做全
- 遇到不能複现的问题时,不能抓瞎乱猜一通冷静分析代码的“可疑点”。
- 基本功还是不扎实还得多学多练。