当前位置: 首页 > news >正文

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

系列文章目录

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


文章目录

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

总结

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

相关文章:

  • Qt使用pri和pro文件进行模块化编程
  • 基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真
  • html 点击弹出视频弹窗
  • PyCharm结合DeepSeek-R1
  • 一场始于 Selector Error 的拯救行动:企查查数据采集故障排查记
  • 苹果AI战略新动向:携手阿里巴巴,深化中国市场布局
  • Win10环境使用Dockerdesktop部署Dify集成Deepseek
  • DeepSeek使用技巧大全(含本地部署教程)
  • IDEA使用codeGPT集合deepseek
  • PyCharm 批量替换
  • pytest测试专题 - 1.3 测试用例发现规则
  • 使用 meshgrid函数绘制网格点坐标的原理与代码实现
  • excel 日期转换
  • Vuex 3.x中检查模块注册的替代方法有哪些?
  • BGP基础协议详解
  • mysql大数据量分页查询
  • PHP 中的除以零错误
  • 基于 Filebeat 的日志收集
  • Python 鼠标轨迹 - 防止游戏检测
  • Django开发入门 – 3.用Django创建一个Web项目
  • 人民日报仲音:大力纠治违规吃喝顽瘴痼疾
  • 睡觉总做梦是睡眠质量差?梦到这些事,才要小心
  • 威尼斯建筑双年展总策划:山的另一边有什么在等着我们
  • 寒武纪陈天石:公司的产品力获得了行业客户广泛认可,芯片市场有望迎来新增量需求
  • 商务部新闻发言人就中美日内瓦经贸会谈联合声明发表谈话
  • 女高音吴睿睿“古词新唱”,穿着汉服唱唐诗宋词