【鸿蒙】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](https://gitcode.com/arkui-x/arkui_for_android/issues/2) #### 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的支持](https://gitcode.com/arkui-x/docs/issues/187) #### 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: *** ** * ** *** ## 总结 以上就是鸿蒙跨平台 开发过程中 遇到的问题,后期会不定时补充,欢迎大家留言交流。

相关推荐
龙儿筝14 分钟前
ArkUI-X与Android桥接通信之消息通信
harmonyos
陈奕昆25 分钟前
5.1 HarmonyOS NEXT系统级性能调优:内核调度、I/O优化与多线程管理实战
华为·harmonyos
libo_20252 小时前
HarmonyOS5 全球化运营:使用AGC的本地化工具适配30+国家/地区
harmonyos
程序员小刘3 小时前
如何优化React Native应用以适配HarmonyOS5?
javascript·react native·react.js·华为·harmonyos
程序员小刘3 小时前
【HarmonyOS 5】拍摄美化开发实践介绍以及详细案例
华为·harmonyos
王二蛋与他的张大花4 小时前
HarmonyOS运动开发:打造你的专属运动节拍器
harmonyos
HarmonyOS_SDK4 小时前
钉钉携手鸿蒙扫一扫,打造高效办公新体验
harmonyos
__Benco7 小时前
OpenHarmony平台驱动使用(十五),SPI
人工智能·驱动开发·harmonyos
暗雨8 小时前
封装一个 auth 工具
harmonyos