HarmonyOS 鸿蒙Next phAccessHelper.showAssetsCreationDialog报错

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next phAccessHelper.showAssetsCreationDialog报错

cke_188.png

显示上面的错误,这里的moduleName 获取不到是什么意思?

使用的测试代码

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

import { fileIo as fs } from '@kit.CoreFileKit';

import { photoAccessHelper } from '@kit.MediaLibraryKit';

import { JSON } from '@kit.ArkTS';

@Entry

@Component

struct FileDemo {

  @State message: string = '复制文件到应用沙箱路径';

  copyFileDemo(){

    let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();

    PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;

    PhotoSelectOptions.maxSelectNumber = 5;

    let photoPicker = new photoAccessHelper.PhotoViewPicker();

    photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {

      let file = fs.openSync(PhotoSelectResult.photoUris[0], fs.OpenMode.READ_ONLY)

      let file2 = fs.openSync(getContext().filesDir+'/demo.jpg', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)

      fs.copyFileSync(file.fd, file2.fd)

      fs.closeSync(file);

      fs.closeSync(file2);

    }).catch((err: BusinessError) => {

      console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));

    });

  }

  build() {

    Column() {

      Text(this.message)

        .id('FileDemoHelloWorld')

        .fontSize(50)

        .fontWeight(FontWeight.Bold)

        .alignRules({

          center: { anchor: '__container__', align: VerticalAlign.Center },

          middle: { anchor: '__container__', align: HorizontalAlign.Center }

        })

        .onClick(() => {

          this.copyFileDemo()

        })

      Button('保存图片到相册')

        .onClick(() => {

          example()

        })

    }

    .height('100%')

    .width('100%')

  }

}

async function example() {

  console.info('ShowAssetsCreationDialogDemo.');

  try {

    // 获取需要保存到媒体库的位于应用沙箱的图片/视频uri

    let srcFileUris: Array<string> = [

      getContext().filesDir + '/demo.jpg' // 实际场景请使用真实的uri

    ];

    let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [

      {

        title: 'test2', // 可选

        fileNameExtension: 'jpg',

        photoType: photoAccessHelper.PhotoType.IMAGE,

        subtype: photoAccessHelper.PhotoSubtype.DEFAULT, // 可选

      }

    ];

    let context = getContext();

    let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);

    let desFileUris: Array<string> = await phAccessHelper.showAssetsCreationDialog(srcFileUris, photoCreationConfigs);

    console.info('showAssetsCreationDialog success, data is ' + desFileUris);

    try {

      let file = fs.openSync(srcFileUris[0], fs.OpenMode.READ_ONLY)

      let file2 = fs.openSync(desFileUris[0], fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)

      fs.copyFileSync(file.fd, file2.fd)

      fs.closeSync(file);

      fs.closeSync(file2);

    } catch (e) {

      console.log(JSON.stringify(e))

    }

  } catch (err) {

    console.error('showAssetsCreationDialog failed, errCode is ' + err.code + ', errMsg is ' + err.message);

  }

}
1 回复

针对您提到的HarmonyOS鸿蒙系统中phAccessHelper.showAssetsCreationDialog报错的问题,这通常与权限管理、资源访问或对话框显示逻辑相关。以下是一些可能的原因分析:

  1. 权限不足:确保您的应用已正确申请并获得了所需的权限,特别是与访问文件、存储等相关的权限。

  2. 资源文件问题:检查是否所有需要的资源文件都已正确配置在项目中,且路径无误。

  3. API使用不当:确认phAccessHelper.showAssetsCreationDialog的调用方式符合API文档要求,包括参数传递等。

  4. 系统兼容性问题:不同版本的HarmonyOS系统可能存在API实现的差异,确认您的代码与当前系统版本的兼容性。

  5. 异常处理:增加适当的异常捕获和处理逻辑,以便更准确地定位问题原因。

如果以上分析仍未解决您的问题,建议检查应用的日志文件,查找更详细的错误信息或堆栈跟踪。此外,确认开发环境(如IDE、SDK版本)是否为最新,以避免已知问题。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部