今天发现一个奇怪的崩溃问题,反复测试最终找到导致的该问题的文件,但是具体的原理可能和编译器最终会将布局文件放在一起有关。
1.出现问题的控件位于lib_common,在编译是会提示布局binder失败。
2.排查发现在module_health模块中存在一个同名的自定义View,且两个View布局名称相同,但是布局有所不同。
3.日志保存在自定义View中findViewById,其中lib_common中的空间获取到的一个控件始终为空,检查代码并未发现异常,尝试使用,LayoutInflater获得的rootView进行初始化依然为空。
4.删除module_health目录下的同名文件,都使用lib_common下的自定义View,问题解决。
5.想要重新记录问题时,发现回退以后(同时存在两个同名自定义View),问题无法复现。
报错信息类似于
这个问题真的很奇怪,如果有大神了解的话可以讲一讲。