HarmonyOS 鸿蒙Next 文字识别模拟器中运行失败

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 文字识别模拟器中运行失败 在调用 textRecognition.recognizeText 实现图片文字识别的时候模拟器异常,真机上正常使用,在断点调试的时候发现模拟器进不去 textRecognition.recognizeText 这个方法里面,日志也无报错信息输出,初次接触 app 开发求大佬解答

案例代码如下:

import { textRecognition } from '@kit.CoreVisionKit'
import { image } from '@kit.ImageKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo } from '@kit.CoreFileKit';
import { photoAccessHelper } from '@kit.MediaLibraryKit';

let imageSource: image.ImageSource | undefined = undefined;
let chooseImage: PixelMap | undefined = undefined;
// 将图片转换为 PixelMap,可以通过图库获取
let photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();
photoPicker.select({
  MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, maxSelectNumber: 1
}).then((res: photoAccessHelper.PhotoSelectResult) => {
  let uri = res.photoUris[0];
  if (uri === undefined) {
    hilog.error(0x0000, 'OCRDemo', "Failed to get uri.");
    return;
  }
  setTimeout(async () => {
    let fileSource = await fileIo.open(uri, fileIo.OpenMode.READ_ONLY);
    imageSource = image.createImageSource(fileSource.fd);
    chooseImage = await imageSource.createPixelMap();
    hilog.info(0x0000, 'OCRDemo', `chooseImage:${chooseImage.toString()}`);
    if (!chooseImage) {
      return;
    }

    // 调用文本识别接口
    let visionInfo: textRecognition.VisionInfo = {
      pixelMap: chooseImage
    };
    textRecognition.recognizeText(visionInfo, (error: BusinessError, data: textRecognition.TextRecognitionResult) => {
      if (error) {
        hilog.error(0x0000, 'OCRDemo', `Failed to recognize text. Code: ${error.code}, message: ${error.message}`);
        return;
      }
      // 识别成功,获取对应的结果
      let recognitionString = data.toString();
      hilog.info(0x0000, 'OCRDemo', `Succeeded in recognizing text:${recognitionString}`);

      if(chooseImage && imageSource) {
        chooseImage.release();
        imageSource.release();
      }
    });
  }, 100)
}).catch((err: BusinessError) => {
  hilog.error(0x0000, 'OCRDemo', `Failed to get photo image uri. Code:${err.code},message:${err.message}`);
})

更多关于HarmonyOS 鸿蒙Next 文字识别模拟器中运行失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

更多关于HarmonyOS 鸿蒙Next 文字识别模拟器中运行失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next 文字识别模拟器中运行失败”的问题,可能的原因及解决方向如下:

  1. 模拟器配置问题:

    • 检查模拟器是否支持HarmonyOS Next版本,以及是否已正确配置所有必要的环境和依赖。
    • 确认模拟器版本与文字识别SDK或框架的版本兼容性。
  2. 代码或资源文件问题:

    • 验证文字识别功能的相关代码是否存在逻辑错误或资源文件缺失。
    • 检查是否所有必要的权限(如相机、存储等)都已在模拟器的配置中开启。
  3. 系统或API限制:

    • 某些文字识别功能可能依赖于特定的硬件或系统API,模拟器可能无法完全模拟这些环境。
    • 查阅HarmonyOS Next的官方文档,确认文字识别功能在模拟器上的支持情况。
  4. 调试与日志分析:

    • 使用HarmonyOS提供的调试工具查看模拟器上的运行日志,分析错误原因。
    • 根据日志信息调整代码或配置,尝试重新运行。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html 。请注意,直接联系官网客服可能能更快地获得针对您具体问题的专业帮助。

回到顶部