HarmonyOS resource优先级?

假设在AppScope和entry主包和feature的多个模块的resource目录都有一个color.json,定义为

{
  "name": "primary",
"value": "#F5F5F5"
}

在feature的其中一个模块用resourceManager.getColorSync($r(‘app.color.primary’))获取色值的时候,读取的优先级为什么是AppScope \> entry主包 \> feature的其它模块 \> feature的当前模块?

不应该是就近原则,当前模块是优先级最高的吗?

阅读 635
1 个回答

AppScope是全局资源目录,打包后会和hap下的同目录同名资源合并,优先取AppScope下的资源;想要使用同名资源,分布到不同的module就使用深浅色目录配置资源

资源匹配是根据资源目录配置的属性来匹配的,同级目录如base,先匹配到的优先级高;多个har包的资源会在打包时打进hap包,以此覆盖同名资源

不建议使用同名资源 ,如果必须使用就增加资源目录的属性(深浅色目录)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进