(一)获取系统图片路径为null
参照:吴小龙同学的博客
(二)superNotCallException
出现原因:在onRestart()方法中没有调用super.Restart()
过程:这个bug是出现在绑定设备当中的,绑定设备需要同意条款,和登陆注册一样一般需要勾选一个checkbok,先同意条款才能进行后面的操作,客户的需求是默认条款未选中,当用户点击进入阅读条款后,回到界面就默认勾选了,所以我就在onRestart中写了个
@Override
protected void onRestart() {
if (isRead == true) {
mIdReadImg.setSelected(true);
}
}
问题就出在这,因为我粗心把super.Restart()给删掉了,与其说是粗心,不如说是没有理解,其实一直不知道这个super.Restart有什么作用,因为进入查看源码是这样的、
protected void onRestart() {
throw new RuntimeException("Stub!");
}
只是抛了个异常,并没有做什么事情,所以总觉得他没用,
protected void onRestart() {
throw new RuntimeException("Stub!");
}
其实不是这样的,这个onRestart()调用的是framework层的代码,之所以看不到源码是因为androidStudio没有关联源码,看了这篇文章关联源码AndroidStudio关联系统源码 还是不能正常查看Restart里面的源码,总之一点是可以确定的,onRestart里面绝对不仅仅是抛了个异常,而是做了许多事情,写在framework里面,暂时无法查看
解决方式:在重写的onRestart中调用super.Restart()
@Override
protected void onRestart() {
super.onRestart();
if (isRead == true) {
mIdReadImg.setSelected(true);
}
}
(三)图片二维码扫描和图片二维码识别
出现原因:为了适配6.0对zxing中的相关代码做了些许调整,在调整的过程中出现了问题,导致后面的问题
过程:由于6.0对权限做了处理,许多权限都需要动态添加,其中有一个错误就是图片二维码识别的时候出现的,由于只动态添加了照相机的权限,并没有动态添加读取sdcard的权限,而且报的错也没有明确提示是权限问题,这里耽误了些时间,还有一个问题就