当前位置: 首页 > 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:

总结

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


http://www.mrgr.cn/news/90667.html

相关文章:

  • deepseek:三个月备考高级系统架构师
  • 【Elasticsearch】字符过滤器Character Filters
  • 生成式聊天机器人 -- 基于Transformer实现的SeqToSeq模型 -- 上
  • qt 事件的传递顺序
  • 黑客利用提示词注入严重篡改Gemini AI长期记忆
  • 【清晰教程】本地部署DeepSeek-r1模型
  • Elasticvue使用总结
  • Navicat导入海量Excel数据到数据库(简易介绍)
  • Linux——stdio
  • CentOS 7操作系统部署KVM软件和创建虚拟机
  • JavaScript 发起网络请求
  • DeepSeek教unity------MessagePack-01
  • 【2025深度学习系列专栏大纲:深入探索与实践深度学习】
  • PostgreSQL 备库的延迟问题
  • AcWing 795. 前缀和理解
  • 微服务SpringCloud Alibaba组件nacos教程(一)【详解naocs基础使用、服务中心配置、集群配置,附有案例+示例代码】
  • 【OpenCV】双目相机计算深度图和点云
  • windows10本地的JMeter+Influxdb+Grafana压测性能测试,【亲测,避坑】
  • MySQL、MariaDB 和 TDSQL 的区别
  • dedecms 开放重定向漏洞(附脚本)(CVE-2024-57241)
  • post、get、delete、put请求
  • 如何部署Deepseek-R1:从零开始的完整指南
  • fps武器系统3:发射子弹命中反馈
  • CTF-web:java-h2 堆叠注入rce -- N1ctf Junior EasyDB
  • java八股---java02(面向对象、类、变量、方法、值传递)
  • Jenkins 新建配置Pipeline任务 三