改bug总结—2016年2月于nice实习
2016-03-07 20:29
267 查看
总述
实习马上就要结束了,该回校毕设去了,这是实习期的最后一篇了
1.Annotation出错,几乎每次都报几百个错,总结遇到的原因如下:
忘记注解标记: EActivity,EViewGroup等,log中没有提示的。
用错注解标记:Activity中传参用Extra,Fragment传参用FragmentArg 。
xml布局中id更改,代码中@ViewById 对应不上。
变量及方法声明时用错修饰符:要用public or protected,不能用private,这是因为使用到注解的地方要保证子类可继承。
2.PopupWindow的使用问题。首先是crash的bug:使用PopupWindow的showAsDropDown方法做相对显示,其中带gravity参数的实现要求API>=19,所以有些低系统的机型会直接crash,换用没有gravity参数的实现即可,这是在API=1就添加了的。然后是弹窗不显示的bug:是相对起始点记错了,作为参考View的左下角被视为待显示View的左上原点。
3.获取屏幕物理宽度。要根据屏幕物理宽度动态设置子View的宽度,因为子View处于HorizonalScollView中,所以只有在onCreate方法中调用getWindowManager().getDefaultDisplay()才能获取准确值,当然,此时得设置app支持多种分辨率。
参考:
http://zhidao.baidu.com/link?url=ETjrmevAcF2jdu7QUj4Usf0wz3xMUcZNagxkaudBYnZIkp3DU95okTIkUTCcsbnFoixbXQeSdGIgqS3asn4H1Vmzor9znF_zlhCwdktQcRq http://blog.csdn.net/lincyang/article/details/42679589
4.遇到一个序列化的bug,提示如下:
android.os.BadParcelableException: ClassNotFoundException when unmarshalling:XXXXX
原因是:序列化与反序列化的顺序应是一致的,要是顺序不一致,解析就失败。也就是说,writeToParcel方法中字段的写顺序与从Parcel中字段的读顺序一致。
6.使用Fresco的SinpleDraweeView控件,倒圆角时得使用控件的原生属性,即:fresco:roundedCornerRadius=“2dp”,要记得导自定义属性库。此时使用background属性加载一个shape型的xml文件这种常规做法是无效的。
实习马上就要结束了,该回校毕设去了,这是实习期的最后一篇了
1.Annotation出错,几乎每次都报几百个错,总结遇到的原因如下:
忘记注解标记: EActivity,EViewGroup等,log中没有提示的。
用错注解标记:Activity中传参用Extra,Fragment传参用FragmentArg 。
xml布局中id更改,代码中@ViewById 对应不上。
变量及方法声明时用错修饰符:要用public or protected,不能用private,这是因为使用到注解的地方要保证子类可继承。
2.PopupWindow的使用问题。首先是crash的bug:使用PopupWindow的showAsDropDown方法做相对显示,其中带gravity参数的实现要求API>=19,所以有些低系统的机型会直接crash,换用没有gravity参数的实现即可,这是在API=1就添加了的。然后是弹窗不显示的bug:是相对起始点记错了,作为参考View的左下角被视为待显示View的左上原点。
3.获取屏幕物理宽度。要根据屏幕物理宽度动态设置子View的宽度,因为子View处于HorizonalScollView中,所以只有在onCreate方法中调用getWindowManager().getDefaultDisplay()才能获取准确值,当然,此时得设置app支持多种分辨率。
参考:
http://zhidao.baidu.com/link?url=ETjrmevAcF2jdu7QUj4Usf0wz3xMUcZNagxkaudBYnZIkp3DU95okTIkUTCcsbnFoixbXQeSdGIgqS3asn4H1Vmzor9znF_zlhCwdktQcRq http://blog.csdn.net/lincyang/article/details/42679589
4.遇到一个序列化的bug,提示如下:
android.os.BadParcelableException: ClassNotFoundException when unmarshalling:XXXXX
原因是:序列化与反序列化的顺序应是一致的,要是顺序不一致,解析就失败。也就是说,writeToParcel方法中字段的写顺序与从Parcel中字段的读顺序一致。
6.使用Fresco的SinpleDraweeView控件,倒圆角时得使用控件的原生属性,即:fresco:roundedCornerRadius=“2dp”,要记得导自定义属性库。此时使用background属性加载一个shape型的xml文件这种常规做法是无效的。
相关文章推荐
- Binary Tree Path Sum
- 使用C、C++、Objective-C三语言混编时的注意事项
- item 24: 区分右值引用和universal引用
- BIND服务rndc的配置,子域授权,区域转发及acl
- ubuntu常用命令(长期更新)
- TCP/IP各个状态
- [转载]微服务实战(四):服务发现的可行方案以及实践案例
- [转载]微服务实战(四):服务发现的可行方案以及实践案例
- 一维数组名的本质
- 算法积累 <1>整数划分问题
- linux学习笔记:1.1 文件处理命令
- 写String类的普通构造函数,析构函数,拷贝构造函数和赋值函数
- 一维数组当成二维使用
- 软工大作业·源物语(一)
- 第一题
- 转载文章----IL反编译利器——Ildasm.exe和Reflector.exe:
- IOS-CocoaPods进阶篇
- spring事务异常回滚使用注意点
- HDOJ-2795 Billboard
- Android报错