Bug记录

来源:互联网 发布:mysql 什么情况锁表 编辑:程序博客网 时间:2024/05/13 16:15
  1. TabLayout如果不设置tabIndicatorColor会抛如下异常
    android.view.InflateException: Binary XML file line Error inflating class

    Caused by: java.lang.RuntimeException: Failed to resolve attribute at index 0 at android.content.res.TypedArray.getColor(TypedArray.java:422)

  2. 在MIUI上发现某个横向的RecycleView不显示,但其他页面的横向RecycleView或者其他机型上都会显示。
    最后通过调试得出是recycleView中textView不知道因为什么原因没有显示(估计是MIUI的ROM在layout时的一个bug),所以解决方案是给textview设置固定高度。之前也遇到过测试反馈说在Nexus上和硬件的连接不稳定,开始也当兼容性bug来解决,最后终于发现是这台Nexus自身的wifi有问题 /(ㄒoㄒ)/~~

  3. TextView显示中英文数字混合的字符串时的bug.
    在TextView设置了
    android:maxLines="1"
    android:ellipsize="end"

    要显示的字符串是“更新至:鸽子和猎人+ThereWereNinetyAndNine”
    预期显示“更新至:鸽子和猎人+ThereWereNinetyAnd。。。”,但最后显示“更新至:鸽子和。。。”
    解决方案是加上
    android:singleLine = "true"

    It is a huge 坑

  4. ConcurrentModificationException
    字面意思就是在遍历的时候容器执行了写操作或者有并发的写操作。所以解决方案是保证遍历过程中没有对容器进行操作;或者用iterator的方法(比如iterator.move)执行写操作,但每次只能有一个iterator进行写操作,也就是要考虑并发,如何处理并发?用Concurrent容器类或者用sychronized修饰方法。最后,如果生成iterator之后,用容器自己的API(如list.add)执行写操作,那么调用iterator遍历也会报ConcurrentModification错误。
    原理参考

  5. exception: android.os.BinderProxy cannot be cast to…
    解决方案:

    1. cast之前用 instance of 判断。如果exception发生在Application里,也可以判断当前Application是不是默认Application
    2. 在Activity里而不是在Application里调用bindService
    3. 使用AIDL
0 0
原创粉丝点击