【鸿蒙】ArkUI-X跨平台问题集锦

系列文章目录

【鸿蒙】ArkUI-X跨平台问题集锦


文章目录

  • 系列文章目录
  • 问题集锦
      • [1、HSP,HAR模块中 无法引入import bridge from '@arkui-x.bridge';](#1、HSP,HAR模块中 无法引入import bridge from '@arkui-x.bridge';)
      • [2、CustomDialog 自定义弹窗中的点击事件在Android 中无任何响应;](#2、CustomDialog 自定义弹窗中的点击事件在Android 中无任何响应;)
      • [3、调用 buildRouterMode() 路由跳转页面前,必须手动import('/*page')页面。无法自动导入?](#3、调用 buildRouterMode() 路由跳转页面前,必须手动import('/*page')页面。无法自动导入?)
      • 4、主题Android\iOS未适配沉浸式;
      • 5、华为一键登录控件,不支持跨平台;
      • 6、webview.registerJavaScriptProxy不支持跨平台,不支持创建H5桥接对象
      • [7、平台差异化,代码如何只编译鸿蒙平台 或者Android、iOS平台,避免编译报错,不支持某平台问题;](#7、平台差异化,代码如何只编译鸿蒙平台 或者Android、iOS平台,避免编译报错,不支持某平台问题;)
      • [8、关于DevEco Studio编译时报错问题解决,报错:" xxx can't support crossplatform application. "](#8、关于DevEco Studio编译时报错问题解决,报错:“ xxx can't support crossplatform application. ”)
      • [9、在Android中无法使用JSON解析,报错: Load native module failed, so is @ohos:util.json](#9、在Android中无法使用JSON解析,报错: Load native module failed, so is @ohos:util.json)
      • [10、DevEco Studio中build App无异常,在Android端启动时闪退,提示找不到ability](#10、DevEco Studio中build App无异常,在Android端启动时闪退,提示找不到ability)
      • [11、在Android中,跳转页面,闪退报错 GetModuleBuffer failed.](#11、在Android中,跳转页面,闪退报错 GetModuleBuffer failed.)
  • 总结

问题集锦

1、HSP,HAR模块中 无法引入import bridge from '@arkui-x.bridge';

报错:Cannot find module '@arkui-x.bridge' or its corresponding type declarations. 找不到模块"@arkui-x.bridge"或其对应的类型声明<ArkTS检查>

原因:模块不支持跨平台,所以无法引入。

解决:

(推荐)方案一、

在项目.arkui-x/arkui-x-config.json5文件中,配置模块名称;

例如:

"modules": [

"arkuix", "utils"

]

(不推荐)方案二、在entry模块 引入bridge;

其他模块通过线程通讯emitter, 调用桥接 ;

2、CustomDialog 自定义弹窗中的点击事件在Android 中无任何响应;

解决:CustomDialogController 实例化时,不要设置showInSubWindow: true,默认值应为false,表示弹窗仅在应用内显示;

3、调用 buildRouterMode() 路由跳转页面前,必须手动import('/*page')页面。无法自动导入?

解决:entry模块未配置模块动态导入;

参考文档:动态import变量表达式

4、主题Android\iOS未适配沉浸式;

5、华为一键登录控件,不支持跨平台;

解决:自定义华为登录按钮 调用登录API;

参考文档:使用自定义按钮登录

6、webview.registerJavaScriptProxy不支持跨平台,不支持创建H5桥接对象

解决方案:仅鸿蒙用此web,其他平台Android、iOS跳转至原生Web页面实现。
官方说明:当前该api内部已规划需求,请持续关注后续版本更新。

7、平台差异化,代码如何只编译鸿蒙平台 或者Android、iOS平台,避免编译报错,不支持某平台问题;

调整架构设计,参考文档:跨平台应用改造指南

8、关于DevEco Studio编译时报错问题解决,报错:" xxx can't support crossplatform application. "

解决:修改静态编辑检查配置文件 C:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\ets\build-tools\ets-loader\lib\fast_build\system_api\api_check_utils.js

修改此配置为警告

"CROSSPLATFORM_TAG_CHECK_ERROER,!1,_typescript.default.DiagnosticCategory.Warning"

参考文档:关于DevEco Studio编译时报错问题解决

9、在Android中无法使用JSON解析,报错: Load native module failed, so is @ohos:util.json

default Throw error: Cannot read property parse of undefined

default at anonymous (arkuix|network|1.0.0|src/main/ets/Request.ts:86:1)

解决方案:

使用JSON,不用导包,导包反而报错,移除以下代码即可;

// import JSON from '@ohos.util.json';

其他API加载失败请参考:异常Load native module failed, so is @ohos

10、DevEco Studio中build App无异常,在Android端启动时闪退,提示找不到ability

报错:ReferenceError: Cannot find module 'com.../entry/ets/entryability/EntryAbility' , which is application Entry Point

解决方案:

在项目根目录下build-profile.json5中,将以下代码注释掉;即可正常运行了

// "useNormalizedOHMUrl": true

相关Issues:如何为纯HarmonyOS项目添加arkuix的支持

11、在Android中,跳转页面,闪退报错 GetModuleBuffer failed.

报错如下:

复制代码
 E  [js_module_reader.cpp(47)] GetModuleBuffer failed.
 A  [default] [LoadJSPandaFile:101] resolveBufferCallback get hsp buffer failed, hsp path:/data/storage/el1/bundle/family/ets/modules.abc, errorMsg:modulePath:

总结

以上就是鸿蒙跨平台 开发过程中 遇到的问题,后期会不定时补充,欢迎大家留言交流。

相关推荐
小魔女千千鱼2 小时前
把 Go 塞进鸿蒙PC:windows上用 c-shared 跑 2048
harmonyos
TrisighT2 小时前
Electron 跑在鸿蒙 PC 上,单窗口和多窗口内存差 800MB?我抓了 5 组数据
性能优化·electron·harmonyos
TrisighT1 天前
AI写埋点代码,35%覆盖率坑惨运营
harmonyos·arkts·arkui
Junerver4 天前
把 DevEco Code 的 HarmonyOS 开发能力装进口袋——harmonyos-dev-skill
harmonyos
程序猿追5 天前
那个右下角的小数字怎么“卡”住我打字——我用 HarmonyOS 自己写了一个字数限制输入框
pytorch·华为·harmonyos
古德new5 天前
鸿蒙PC使用electron迁移:Joplin Electron 桌面适配全记录
华为·electron·harmonyos
世人万千丶5 天前
桌面便签小应用 - HarmonyOS ArkUI 开发实战-TextArea与Flex布局-PC版本
华为·harmonyos·鸿蒙·鸿蒙系统
慧海灵舟5 天前
AGenUI 鸿蒙端实战踩坑录:从 Column 布局消失到异步组件宽度为 0
华为·harmonyos
yuegu7775 天前
HarmonyOS应用<节气通>开发第33篇:状态管理实战
华为·harmonyos