HarmonyOS鸿蒙Next中构建har报错,刚学习还希望多多指教

HarmonyOS鸿蒙Next中构建har报错,刚学习还希望多多指教

具体报错提示如下:

> ERROR: Failed :library:default@HarCompileArkTS...
> 
> ERROR: Could not resolve "../album/PhotoPickerView" from "library/src/main/ets/components/SelectPhotoPage.ets"
> 
> 1 WARN: ArkTS:WARN File: E:/appgitub/HarmonyOSdemo/CustomAlbumStyle/library/src/main/ets/album/PhotoPickerView .ets:87:44
> 
> To use this API, you need to apply for the permissions: ohos.permission.READ_IMAGEVIDEO
> 
> 2 WARN: ArkTS:WARN File: E:/appgitub/HarmonyOSdemo/CustomAlbumStyle/library/src/main/ets/album/PhotoPickerView .ets:93:37
> 
> To use this API, you need to apply for the permissions: ohos.permission.READ_IMAGEVIDEO
> 
> 1 ERROR: ArkTS:ERROR File: E:/appgitub/HarmonyOSdemo/CustomAlbumStyle/library/src/main/ets/components/SelectPhotoPage.ets:17:33
> 
> Cannot find module '../album/PhotoPickerView' or its corresponding type declarations.
> 
> > More Info: [https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-compiling-and-building-4](https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-compiling-and-building-4)
> 
> 2 ERROR: ArkTS:ERROR File: E:/appgitub/HarmonyOSdemo/CustomAlbumStyle/library/src/main/ets/components/SelectPhotoPage.ets:59:15
> 
> 'PhotoPickerView({
>     mimeType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_VIDEO_TYPE,
>     albumUri: this.albumUri
>     })' does not meet UI component syntax.
> 
> 3 ERROR: ArkTS:ERROR File: E:/appgitub/HarmonyOSdemo/CustomAlbumStyle/library/src/main/ets/components/SelectPhotoPage.ets:66:15
> 
> 'PhotoPickerView({
>     mimeType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE,
>     albumUri: this.albumUri
>     })' does not meet UI component syntax.
> 
> 4 ERROR: ArkTS:ERROR File: E:/appgitub/HarmonyOSdemo/CustomAlbumStyle/library/src/main/ets/components/SelectPhotoPage.ets:74:15
> 
> 'PhotoPickerView({
>     mimeType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
>     albumUri: this.albumUri
>     })' does not meet UI component syntax.
> 
> COMPILE RESULT:FAIL {ERROR:5 WARN:2}
> 
> > hvigor ERROR: BUILD FAILED in 15 s 504 ms

更多关于HarmonyOS鸿蒙Next中构建har报错,刚学习还希望多多指教的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

楼主这一共三个错误

第一个:Cannot find module ‘…/album/PhotoPickerView’— PhotoPickerView .ets存在多余空格;未正确导出组件或文件路径不符合ArkTS模块加载规则。

检查文件路径命名规范,修正为PhotoPickerView.ets,在PhotoPickerView.ets中确保组件已通过export关键字导出:

@Component

export struct PhotoPickerView {

  // 组件实现

}

第二个:need to apply for permissions: ohos.permission.READ_IMAGEVIDEO

在模块的module.json5中添加权限声明:

"requestPermissions": [{
  "name": "ohos.permission.READ_IMAGEVIDEO",
  "reason": "$string:permissionReason"
}]

在string.json中补充权限说明文案。

第三个:does not meet UI component syntax

检查PhotoPickerView组件属性传递方式,确保符合ArkTS声明式语法:

PhotoPickerView({
  mimeType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
  albumUri: $rawfile(this.albumUri)
})

验证photoAccessHelper是否通过@kit.AbilityKit正确导入。

更多关于HarmonyOS鸿蒙Next中构建har报错,刚学习还希望多多指教的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


路径错误排查

相对路径验证

确保 ../album/PhotoPickerView.ets 路径层级正确。检查 SelectPhotoPage.ets 所在目录与目标文件的实际位置是否匹配。

文件存在性检查

确认目标文件 PhotoPickerView.ets 实际存在,特别注意文件名大小写是否完全匹配(系统区分大小写)。

模块导出与引用

导出语法检查

确保 PhotoPickerView.ets 中通过 export 关键字导出类或函数。

引用方式优化

若目标文件是自定义组件,使用 @Component 装饰器并导出。

工程配置验证

1. oh-package.json5 配置

检查模块是否在 oh-package.json5 中正确声明依赖关系。若为本地模块,需通过 "dependencies" 字段关联:

{
  "dependencies": {
    "@/library/album": "file:../album"
  }
}

SDK 版本兼容性

若项目从旧版本升级而来,确认是否因 API 版本差异导致模块路径规则变更(如 HarmonyOS NEXT 对模块化路径要求更严格)。

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

  1. 主要的编译错误是由这个导致的:
Cannot find module '../album/PhotoPickerView' or its corresponding type declarations.
  1. 希望楼主提供代码直接定位分析

  2. 如果是跨包引用方法没导入导致的参考一下下面

A包导出代码在A包的features/A/Index.ets里面添加导出信息

![](data-originheight=“125” data-originwidth=“482” src="")

B包应用A包代码需要在/B/oh-package.json5的dependenciesli进行依赖

"dependencies": {
  //依赖的模块名称需要与模块的moduleName保持一致 可以正确动态创建拦截器、生命周期和自定义转场动画对象
  "A": "file:../features/A",
}

然后再B包里面直接导入使用A包封装的函数或者组件

同问

期待HarmonyOS能在未来带来更多创新的技术和理念。

  1. 路径引用错误(最优先解决)

    Cannot find module '../album/PhotoPickerView'
    

    说明 SelectPhotoPage.ets 中导入 PhotoPickerView 时,路径与实际文件位置不匹配。

    • 可能原因:PhotoPickerView.ets 的实际路径与 ../album/PhotoPickerView 不符(如文件名有空格、路径层级错误、文件名拼写错误等)。
    • 错误日志中显示文件名是 PhotoPickerView .ets(注意文件名后有空格),这会导致导入失败。
  2. 权限缺失警告

    To use this API, you need to apply for the permissions: ohos.permission.READ_IMAGEVIDEO
    

    说明 PhotoPickerView.ets 中使用了读取图片 / 视频的 API,但未声明对应权限。

  3. 组件使用语法错误

    'PhotoPickerView(...)' does not meet UI component syntax
    

    说明 PhotoPickerView 未被正确定义为 ArkUI 自定义组件,或使用方式不符合组件语法规范。

在HarmonyOS Next中构建har报错可能是以下原因导致:

  1. 工程配置问题:检查oh-package.json5文件是否正确定义了模块依赖关系
  2. 依赖冲突:确保依赖的模块版本兼容
  3. 资源文件缺失:确认resources目录下的图片/布局等资源文件完整
  4. 权限不足:检查开发环境是否具备构建HAR包的权限
  5. 工具链版本:确认DevEco Studio和SDK版本是否匹配

常见错误:

  • 模块导出不规范
  • API版本不兼容
  • 资源引用路径错误
  • 混淆配置冲突

从报错信息来看,主要存在两个问题:

  1. 模块路径解析失败:
  • 错误提示找不到"…/album/PhotoPickerView"模块
  • 请检查文件路径是否正确,确保PhotoPickerView.ets文件确实存在于library/src/main/ets/album/目录下
  • 如果是TypeScript声明文件问题,需要确认是否存在对应的.d.ts声明文件
  1. 组件语法问题:
  • 多个错误指出PhotoPickerView组件不符合UI组件语法规范
  • 在HarmonyOS Next中,自定义组件需要遵循ArkTS组件规范:
    • 确保组件使用@Component装饰器
    • 检查组件参数传递方式是否正确
    • 确认photoAccessHelper相关API调用方式
  1. 权限问题警告:
  • 需要添加ohos.permission.READ_IMAGEVIDEO权限声明
  • module.json5文件中配置所需权限

建议先解决模块路径问题,确保能正确导入组件,再检查组件实现是否符合ArkTS规范。

回到顶部