HarmonyOS鸿蒙Next中调用相册函数时报错

HarmonyOS鸿蒙Next中调用相册函数时报错 在调用拉起相册并选择照片时会跳进异常处理报错,应该如何解决?demo需要如何修改?
希望实现的是调用函数后,更新selectedUri的值,保存选择的照片后再跳转其他页面。

3 回复

参考demo,是可以拿到uri的

import { picker } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct Index{
  @State selectedUri: string = '';

  choosePhoto(){
    try {
      let photoSelectOptions: picker.PhotoSelectOptions = new picker.PhotoSelectOptions();
      photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
      photoSelectOptions.maxSelectNumber = 1;
      let photoPicker = new picker.PhotoViewPicker()
      let uris: Array<string> = [];
      photoPicker.select(photoSelectOptions).then((PhotoSelectResult: picker.PhotoSelectResult) => {
        console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' +
        JSON.stringify(PhotoSelectResult));
        uris = PhotoSelectResult.photoUris;
        this.selectedUri = uris[0];
      })
        .catch((err: BusinessError) => {
          console.error(`picker.select failed with err: ${err.code}, ${err.message}`);
        });
    } catch (error) {
      let err: BusinessError = error as BusinessError;
    }
  }

  build(){
    Column() {
      Image(this.selectedUri)
        .width('100%')
        .height(600)
      Button("选择图片").width(150).height(35).margin(8)
        .onClick(() => {
          this.choosePhoto()
        })
    }
  }
}

更多关于HarmonyOS鸿蒙Next中调用相册函数时报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中调用相册函数时,报错可能与以下几个因素有关。首先,检查是否在config.json文件中正确声明了所需的权限,如ohos.permission.READ_MEDIAohos.permission.WRITE_MEDIA。其次,确保在调用相册函数之前,已经通过requestPermissionsFromUser方法获取了相应的权限。如果权限未正确获取,调用相册函数时会报错。

另外,相册功能依赖于PhotoAccessHelper模块,确保在代码中正确导入了该模块,并使用了正确的API。例如,调用getPhotoAccessHelper()方法获取相册助手实例,并通过其提供的接口进行相册操作。如果API调用方式不正确,也可能导致报错。

此外,检查设备是否支持相册功能,某些设备可能没有相册应用或相册功能被禁用。如果设备不支持,调用相关函数时会报错。

最后,查看日志信息,通常报错信息会提示具体原因。根据日志中的错误码或错误信息,进一步排查问题。例如,ErrorCode200可能表示权限问题,ErrorCode401可能表示API调用参数错误。

在HarmonyOS鸿蒙Next中调用相册函数时报错,可能原因如下:

  1. 权限问题:确保在config.json中已添加相册访问权限,如ohos.permission.READ_MEDIA
  2. API调用错误:检查相册API调用方式是否正确,如PhotoAccessHelper的使用。
  3. 版本兼容性:确认使用的API与设备系统版本兼容。
  4. 资源路径问题:确保相册路径或资源标识符正确无误。
  5. 日志分析:查看错误日志,定位具体问题。

建议逐步排查以上问题,确保权限、API调用和资源路径正确。

回到顶部