HarmonyOS鸿蒙Next中getRawFileContent读取rawfile报错,code = 9001005 message = "GetRawFileContent failed"
HarmonyOS鸿蒙Next中getRawFileContent读取rawfile报错,code = 9001005 message = “GetRawFileContent failed” rawfile中有3千张左右的png,每张都都不大。整个rawfile大小为7M左右。
使用getRawFileContent读取rawfile中的json时,报错
code = 9001005
message = “GetRawFileContent failed”
当我把png只留100张左右的时候,读取正常。
请问大佬这是什么问题?
9001005 无效的相对路径
支持设备PhonePC/2in1TabletTVWearable
错误信息
Invalid relative path.
错误描述
根据参数相对路径, 找不到对应的资源。
可能原因
传入的相对路径有误。
处理步骤
可检查传入的相对路径是否符合预期。
在鸿蒙(HarmonyOS)开发中,getRawFileContent
报 9001005 错误(GetRawFileContent failed),且 “文件数量多(3 千张 PNG)时报错、少(100 张)时正常”,核心原因是 鸿蒙 RawFile 对 “单个目录下的文件数量” 有默认限制。
鸿蒙的 RawFile 本质是 “只读资源目录”,其底层通过 索引文件(如 resource.index
) 管理所有资源。当单个 RawFile 目录下的文件数量过多(如你场景中的 3 千张 PNG 集中在一个目录),会触发两个关键限制:
- 单个目录文件数上限:鸿蒙默认限制 单个 RawFile 目录下的文件数量不超过 1000 个(不同 API 版本可能略有差异,但均远低于 3000)。超过后,编译时生成的索引文件会异常,导致运行时读取资源(如 JSON)时找不到正确的索引,报 9001005。
- 索引文件效率问题:即使未触发硬限制,3 千个文件在同一目录下会导致索引文件体积增大、查找效率骤降,最终引发读取超时或失败(表现为 9001005)。
你留 100 张 PNG 时正常,正是因为未超过 “单个目录文件数上限”,索引生成和读取均正常。
我建议 分包处理 一个包放 500-1000张图片
更多关于HarmonyOS鸿蒙Next中getRawFileContent读取rawfile报错,code = 9001005 message = "GetRawFileContent failed"的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
该错误通常由资源路径或文件权限问题引起。请检查以下方面:rawfile目录下文件是否存在且命名正确;使用$r('app.rawfile.filename')
方式引用资源;确认文件未损坏或格式错误。同时验证API调用方式是否符合HarmonyOS规范,确保在UI线程外执行文件操作。
错误代码9001005通常与资源文件读取时的容量限制或文件数量有关。根据你的描述,当rawfile目录包含约3000个PNG文件(总大小7MB)时,getRawFileContent
操作失败;减少到100个文件后恢复正常。这可能是由于HarmonyOS Next对rawfile目录的文件数量或并发读取存在限制。
建议检查以下两点:
- 确认是否有单个文件或总文件数量的限制(参考官方文档中的rawfile约束);
- 考虑将大量静态资源移至服务器或使用其他存储方式,避免本地rawfile过载。