HarmonyOS 字符串格式化异常
通过以下api格式化获取字符串,运行crash。报错code提示资源id不存在,实际上是存在的。是啥问题?
let ua = getContext().resourceManager.getStringSync($r('app.string.web_ua_2').id, 'stg', 'stg', 'stg', 'stg')
string.json中的资源为:
{
"name": "web_ua_2",
"value": "%1$s 111 222 %2$s 333 %3$s 444 %4$s"
}
error内容:
Error message:Resource id invalid
Error code:9001001
SourceCode:
let ua = getContext()
.resourceManager
.getStringSync({
"id": 67108978,
"type": 10003,
params: [],
"bundleName": "com.pingan.eclaim.test",
"moduleName": "lib_web"
}.id, 'stg', 'stg', 'stg', 'stg');
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何格式化字符串,有人知道吗?
286浏览 • 1回复 待解决
获取格式化日期,将传入的日期格式化为指定格式的字符串
380浏览 • 1回复 待解决
HarmonyOS 字符串显示异常
349浏览 • 1回复 待解决
HarmonyOS DateFormat格式化
380浏览 • 1回复 待解决
HarmonyOS TextInput组件如何在输入框显示字符串之前匹配字符串格式(金额格式输入)
278浏览 • 1回复 待解决
格式化console输出日志格式-美观化
236浏览 • 1回复 待解决
HarmonyOS 时间日期格式化
526浏览 • 1回复 待解决
HarmonyOS Uint8Array格式转字符串的方法
596浏览 • 1回复 待解决
HarmonyOS如何实现日期格式化转换
488浏览 • 1回复 待解决
获取格式化日期,将传入的日期格式化为Date
389浏览 • 1回复 待解决
HarmonyOS字符串替换问题
576浏览 • 1回复 待解决
Dev EcoStudio如何格式化代码
3615浏览 • 1回复 已解决
HarmonyOS 如何将时间进行格式化?
142浏览 • 1回复 待解决
检查字符串是否以给定的字符串开头
417浏览 • 1回复 待解决
有时进行代码格式化后,本来自己不向换行的代码,被格式化后换行了,如何实现部分代码可以不格式化呢?
433浏览 • 1回复 待解决
检查字符串是否以给定的字符串结尾
321浏览 • 1回复 待解决
保存自动格式化代码如何配置
330浏览 • 1回复 待解决
HarmonyOS $r 字符串替换问题
644浏览 • 1回复 待解决
HarmonyOS 有个字符串资源文件,后面怎么拼接字符串?
290浏览 • 1回复 待解决
根据指定字符串,随机生成 指定长度的字符串
350浏览 • 1回复 待解决
ArkUI组件的字符串中如何实现字符串变量拼接
2391浏览 • 1回复 待解决
HarmonyOS 如何将字符串进行base64编码后再返回字符串
897浏览 • 1回复 待解决
时间格式化API,如果要格式化如下:yyyy-MM-dd HH:mm:ss,这样的如何使用?
895浏览 • 1回复 待解决
如何替换字符串中所有匹配的正则为给定的字符串
211浏览 • 1回复 待解决
如何对电话号码进行格式化
306浏览 • 1回复 待解决
1、如果是在HAP包中使用resourceManager,请确认当前ability是哪种类型的ability,如果是UIExtensionAbility的话,需要申请ohos.permission.ACCESS_BUNDLE_DIR权限,因为UIExtensionAbility的context在使用resourceManager时有限制,没有UIAbility的权限大。
2、如果是在HSP包中使用resourceManager,需要使用HSP上下文的resourceManager来获取相关目录下的资源文件。
请先按照这个排查一下:
9001007 根据当前id获取的资源格式化失败。
错误信息:
If the resource obtained by resId formatting error.
错误描述:
resId获取的字符串资源格式化失败。
可能原因
1、参数类型不在支持范围内。
2、参数与占位符个数不等。
3、参数与占位符类型不匹配。
处理步骤:
查看args参数类型与占位符的个数、类型是否一致。
$符号去掉。
如果是单个占位符,沿用之前的写法%1d可以识别,如果是有多个占位符的,要去掉1, HarmonyOS 只识别%d, %f, %s这些。
格式化字符串资源参数不正确。参考链接:
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-localization-kit/js-apis-resource-manager.md#getstringsync10
如果是单个占位符,沿用之前的写法%1d可以识别,如果是有多个占位符的,要去掉1, HarmonyOS 只识别%d, %f, %s这些。
例:
这里只有一个占位符的可以用 %s %d 或者 %1$s,但是对于有多个占位符的只能用 %s %d,例如
'%d.关于%s的几点意见,详见%s'。