HarmonyOS 鸿蒙Next shared模块权限声明中的reason string值,声明在本模块编译错误

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next shared模块权限声明中的reason string值,声明在本模块编译错误

升级DevEco到最新版本后,应用编译失败,根据报错信息,提示 ohos.permission.APP_TRACKING_CONSENT 权限需要加上 reason和usedScene,在对应模块加好配置后,编译依然报错,报错信息是依赖这个权限声明的模块找不到reason string资源的声明,也就是 A模块 依赖 B模块, APP_TRACKING_CONSENT 声明在 B模块,A、B模块都是shared模块,A模块报错找不到 APP_TRACKING_CONSENT 声明中 reason string资源的定义  真实报错如附件图1  然后尝试,在A模块中也声明相同的string资源,依然报错 然后尝试,把B模块中的description的string id 改成和A模块中不一样,报错信息不变 然后尝试,在B模块中去掉string资源声明,在A模块中声明这个string资源,报错信息变化,变为 依赖 A模块的C模块(也是shared模块)找不到string资源 然后想到把这个string资源放到AppScope中,编译成功  想请教以下问题 - 这个行为是否符合官方预期 - 为什么这种情况权限声明的reason不能把string资源声明到本模块,而相同json文件的description却可以 - 这种现象是否和 shared模块类型相关  


更多关于HarmonyOS 鸿蒙Next shared模块权限声明中的reason string值,声明在本模块编译错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

应用打包时HSP资源理论不会向HAP合并,但是权限项会在APP层面进行合并,发生问题的原因是权限配置合并了,但是静态资源没有合并导致报错。

规避方法:

方法一:在APP入口的Hap模块的资源文件中做定义。 

方法二:在AppScope中进行资源定义。 

用新版的IDE,新版的没这个问题

更多关于HarmonyOS 鸿蒙Next shared模块权限声明中的reason string值,声明在本模块编译错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,对于shared模块权限声明中的reason string值,其主要用于解释为何该模块需要请求特定的权限。当在模块编译过程中遇到与reason string相关的错误时,通常意味着reason string值填写不当或缺失,导致编译器无法正确识别权限请求的理由。

要解决这个问题,请确保reason string值的填写符合以下要求:

  1. 准确性:reason string应准确描述模块为何需要该权限,避免模糊或泛泛之词。
  2. 完整性:确保reason string值完整填写,不应有遗漏或缺失。
  3. 格式正确:检查reason string值的格式,确保符合鸿蒙系统的规范,通常应为简洁明了的字符串。

如果reason string值填写正确但编译仍然报错,可能是权限声明文件(如config.json)中其他配置有误,或者鸿蒙系统对权限管理的更新导致原有配置不再适用。此时,应仔细检查权限声明文件的其他部分,并确认是否遵循了最新的鸿蒙系统权限管理规范。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部