如果app和module存在相同的资源名称或属性名称,app的资源文件或属性值会覆盖module的资源文件或属性值。
比如app和module都有一个activity叫做MainActivity,它们的layout资源文件名字都为activity_main.xml,那么在加载module的MainActivity的时候,实际上显示的是app的activity_main.xml。
定义在resource file里面的属性也同样会存在相同的问题。app和module在strings.xml文件里面都有一个叫code的属性,但是在项目运行起来之后,在module获取code的值成了app的值。
所以在命名资源文件和属性名的时候,请参考《阿里巴巴Android开发手册》,在资源或属性名前面加上模块前缀。
也可以在module的gradle文件中加上
resourcePrefix 'library_'
来强制ide进行文件名或属性名检查。
resourcePrefix 注意事项
-
在gradle文件里面加了这个属性不会自动给xml文件或属性名加上prefix前缀,它的作用是给没有指定前缀名的xml文件或属性名一个错误;
image.png
-
不包含图片文件。
网友评论