HarmonyOS 鸿蒙Next中创建静态har包模块,图片资源如何放置和引用

HarmonyOS 鸿蒙Next中创建静态har包模块,图片资源如何放置和引用 我创建了一个模块,需要用到部分图片,但是我在resource/base下创建了资源目录media,并把图片放进去了,在模块本身中使用

Image($r('app.media.type1_1'))
  .width(300)
  .height(200)

运行报错

hvigor ERROR: ArkTS Compiler Error

1 ERROR: 10904333 ArkTS Compiler Error

Error Message: No such ‘youhui1.png’ resource in current module. At File: /Users/apple/Desktop/harmony/emptyProduct/paymentDialog/src/main/ets/components/MainPage.ets:13:13

COMPILE RESULT:FAIL {ERROR:2 WARN:759}

然后我又创建了rawfile文件夹,使用

Image($rawfile('youhui1.png'))
  .width(300)

还是同样的报错,所以这个模块中本身的图片要怎么引用啊

cke_410.png


更多关于HarmonyOS 鸿蒙Next中创建静态har包模块,图片资源如何放置和引用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

11 回复

小伙伴你好:1、创建har包

cke_594.png

2、鼠标右键resources找到如图创建资源文件夹

cke_4022.png

3、访问使用

cke_6858.png

4、使用页面

cke_5483.png

更多关于HarmonyOS 鸿蒙Next中创建静态har包模块,图片资源如何放置和引用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


清理项目

cke_422.png

在同步

cke_152.png

然后重启试试

我就是这么创建的media,但是运行就是报错,是还需要配置什么吗?

cke_2535.png

cke_2008.png

您创建资源文件夹是自己手动输入的还是点击菜单创建的呢,提示是当前模块没有这个资源

试试把图片youhui1.png 放到:paymentDialog/src/main/resources/base/media/youhui1.png
然后使用:
Image($r(‘app.media.youhui1’)),

本身就是在media中,运行报错我才重新创建的

rawfile

目录,然后还是报错

type_1_1.png这个文件看着引用没问题,会不会问题出在那个图片上,看看有什么不同?,

图片没问题的,我就是从项目里抽离出来的,本来想着给它整成一个har包,这样就不用复制代码了,结果第一步图都展示不出来,我感觉是创建万media之后是不是还得配置一个什么,才能让media生效啊

cke_121.png

查看一下entry下构建的包中有没有图片,没有就是没有构建就来,重新构建一下

在HarmonyOS Next静态HAR包中,图片资源应存放在src/main/resources/base/media/目录下。引用时,在代码中使用$media('image_name')占位符,或通过ResourceTable.Media_image_name获取资源ID。注意资源文件名需全小写、单词间用下划线。HAR包内资源引用无需额外前缀。

在静态 HAR 包模块中,图片资源需放在模块自身的 src/main/resources/ 下:

  • base/media/ 存放普通图片,引用方式 Image($r('app.media.图片名无后缀'))
  • rawfile/ 存放原始文件,引用方式 Image($rawfile('文件名带后缀'))

常见错误:将资源放在了项目根目录或入口模块的 resource/base/ 下,导致编译时找不到资源。报错 “No such … resource in current module” 即模块自身 resources 内未找到。
正确做法:在模块目录下(如 paymentDialog/src/main/resources/)新建 base/media(或 rawfile),放入图片,代码中无需模块名前缀。

回到顶部