在项目工程选中使用ViewStub之后,大量线上问题:
java.lang.ClassCastException
java.lang.String cannot be cast to java.lang.Object[]
android.util.ArrayMap.allocArrays(ArrayMap.java:213)
问题的直接原因是谷歌自己在Android 9.0以下的BUG:
ArrayMap 存在线程不安全操作
因此,当你使用大量使用ViewStub,尤其是在布局很频繁的阶段使用ViewStub,就会在低版本的机器上引发上述问题。
间接原因是,使用ViewStub之后,引起页面重新绘制、测量。