在Android源码编译过程中,发现有些宏定制不能生效或者中途被哪个输入给篡改。
这时,通过二分法,不断往里定期输出一些自添加信息,是很有必要的。
下面以需找Build.MODEL对应的系统属性值定制不能生效问题为例。
直接先上日志结果:
由以上截图可知,在device/jrdchz/jhz6737m_35_b_m0/full_jhz6737m_35_b_m0.mk文件中,发现中途PRODUCT_MODEL被篡改了。
中途发生了什么呢?
很明显,中间inlucde了其它的mk文件,由此引入,需要根据include进行跟踪,此处不做详述。
解决方案:
中途通过加入warning或者error的方法使得在编译甚至launch时,就能看见相关的信息。
例如:warning用法
$(warning "before include vendor jrdcom product model is:" $(PRODUCT_MODEL))
error用法也一样。