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
楼主这一共三个错误
第一个: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
- 主要的编译错误是由这个导致的:
Cannot find module '../album/PhotoPickerView' or its corresponding type declarations.
-
希望楼主提供代码直接定位分析
-
如果是跨包引用方法没导入导致的参考一下下面
A包导出代码在A包的features/A/Index.ets里面添加导出信息

B包应用A包代码需要在/B/oh-package.json5的dependenciesli进行依赖
"dependencies": {
//依赖的模块名称需要与模块的moduleName保持一致 可以正确动态创建拦截器、生命周期和自定义转场动画对象
"A": "file:../features/A",
}
然后再B包里面直接导入使用A包封装的函数或者组件
同问
期待HarmonyOS能在未来带来更多创新的技术和理念。
-
路径引用错误(最优先解决)
Cannot find module '../album/PhotoPickerView'
说明
SelectPhotoPage.ets
中导入PhotoPickerView
时,路径与实际文件位置不匹配。- 可能原因:
PhotoPickerView.ets
的实际路径与../album/PhotoPickerView
不符(如文件名有空格、路径层级错误、文件名拼写错误等)。 - 错误日志中显示文件名是
PhotoPickerView .ets
(注意文件名后有空格),这会导致导入失败。
- 可能原因:
-
权限缺失警告
To use this API, you need to apply for the permissions: ohos.permission.READ_IMAGEVIDEO
说明
PhotoPickerView.ets
中使用了读取图片 / 视频的 API,但未声明对应权限。 -
组件使用语法错误
'PhotoPickerView(...)' does not meet UI component syntax
说明
PhotoPickerView
未被正确定义为 ArkUI 自定义组件,或使用方式不符合组件语法规范。
在HarmonyOS Next中构建har报错可能是以下原因导致:
- 工程配置问题:检查oh-package.json5文件是否正确定义了模块依赖关系
- 依赖冲突:确保依赖的模块版本兼容
- 资源文件缺失:确认resources目录下的图片/布局等资源文件完整
- 权限不足:检查开发环境是否具备构建HAR包的权限
- 工具链版本:确认DevEco Studio和SDK版本是否匹配
常见错误:
- 模块导出不规范
- API版本不兼容
- 资源引用路径错误
- 混淆配置冲突
从报错信息来看,主要存在两个问题:
- 模块路径解析失败:
- 错误提示找不到"…/album/PhotoPickerView"模块
- 请检查文件路径是否正确,确保
PhotoPickerView.ets
文件确实存在于library/src/main/ets/album/
目录下 - 如果是TypeScript声明文件问题,需要确认是否存在对应的
.d.ts
声明文件
- 组件语法问题:
- 多个错误指出
PhotoPickerView
组件不符合UI组件语法规范 - 在HarmonyOS Next中,自定义组件需要遵循ArkTS组件规范:
- 确保组件使用
@Component
装饰器 - 检查组件参数传递方式是否正确
- 确认
photoAccessHelper
相关API调用方式
- 确保组件使用
- 权限问题警告:
- 需要添加
ohos.permission.READ_IMAGEVIDEO
权限声明 - 在
module.json5
文件中配置所需权限
建议先解决模块路径问题,确保能正确导入组件,再检查组件实现是否符合ArkTS规范。