假设在AppScope和entry主包和feature的多个模块的resource目录都有一个color.json,定义为
{
"name": "primary",
"value": "#F5F5F5"
}
在feature的其中一个模块用resourceManager.getColorSync($r(‘app.color.primary’))获取色值的时候,读取的优先级为什么是AppScope \> entry主包 \> feature的其它模块 \> feature的当前模块?
不应该是就近原则,当前模块是优先级最高的吗?
AppScope是全局资源目录,打包后会和hap下的同目录同名资源合并,优先取AppScope下的资源;想要使用同名资源,分布到不同的module就使用深浅色目录配置资源
资源匹配是根据资源目录配置的属性来匹配的,同级目录如base,先匹配到的优先级高;多个har包的资源会在打包时打进hap包,以此覆盖同名资源
不建议使用同名资源 ,如果必须使用就增加资源目录的属性(深浅色目录)