uni-app 4.36更新后运行到鸿蒙报错

发布于 1周前 作者 ionicwang 来自 Uni-App

uni-app 4.36更新后运行到鸿蒙报错

操作步骤

点击运行,选择鸿蒙。

预期结果

希望正常运行

实际结果

报错。

bug描述

运行项目到真机报错如图所示。4.29的时候是没问题的。更新后运行就报错了。

报错截图

开发环境、版本号及项目创建方式

项⽬分类 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 4.36
手机系统 HarmonyOS NEXT
手机系统版本号 HarmonyOS NEXT Developer Preview
手机厂商 华为
手机机型 mate60 pro
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app 4.36更新后运行到鸿蒙报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

从报错看应该是 harmony-configs/oh-package.json5 里面包含了旧版本的依赖信息。请尝试删除 harmony-configs 和 unpackage 目录之后重新运行到鸿蒙。
后续如果需要修改配置文件 oh-package.json5 的话,请从 unpackage 目录下找到鸿蒙工程目录,以里面的 oh-package.json5 文件为样本修改后放置到 harmony-configs 目录下,不要使用以前的 oh-package.json5 文件。

更多关于uni-app 4.36更新后运行到鸿蒙报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


按照你说的重新运行了下,上边的报错没了,又出现新的,鸿蒙原生引入的问题。

hvigor WARN: module ‘uni_moduleshht_bluetooth’ depends on another module ‘uni_moduleshht_bluetooth’.This dependency will not be collected because of the potential issue of circular dependenciesbetween hsp/har modules. hvigor Finished :entry:clean… after 6 ms hvigor Finished :uni_moduleshht_bluetooth:clean… after 4 ms hvigor Finished :entry:default@PreBuild… after 142 ms hvigor Finished :uni_moduleshht_bluetooth:default@PreBuild… after 86 ms hvigor Finished :entry:default@GenerateMetadata… after 6 ms hvigor Finished :entry:default@PreCheckSyscap… after 1 ms hvigor Finished :entry:default@GeneratePkgContextInfo… after 1 ms hvigor Finished :entry:default@ProcessIntegratedHsp… after 2 ms hvigor Finished :uni_moduleshht_bluetooth:default@CreateHarBuildProfile… after 2 ms hvigor Finished :uni_moduleshht_bluetooth:default@ConfigureCmake… after 1 ms hvigor Finished :uni_moduleshht_bluetooth:default@MergeProfile… after 20 ms hvigor Finished :entry:default@SyscapTransform… after 2 ms hvigor Finished :entry:default@ProcessRouterMap… after 8 ms hvigor Finished :entry:default@CreateBuildProfile… after 4 ms hvigor Finished :uni_moduleshht_bluetooth:default@BuildNativeWithCmake… after 1 ms hvigor Finished :entry:default@MergeProfile… after 21 ms hvigor ERROR: Failed :entry:default@GenerateLoaderJson… hvigor ERROR: byteCodeHar not supported when useNormalizedOHMUrl is not true. Detail: Please check useNormalizedOHMUrl in the project-level build-profile.json5 file. hvigor ERROR: BUILD FAILED in 2 s 648 ms 15:16:47.567 运行包制作失败

回复 8***@qq.com: 根据这个报错信息,你可以尝试修改 harmony-configs/build-profile.json5 文件,把里面的 useNormalizedOHMUrl 属性值改为 false。

还是报错怎么弄 “useNormalizedOHMUrl”: “false” “useNormalizedOHMUrl”: “true” “useNormalizedOHMUrl”: false “useNormalizedOHMUrl”: true 都是过了

没事了 复制错代码

针对uni-app 4.36版本更新后运行到鸿蒙系统报错的问题,首先需要确认报错的具体信息,因为不同的错误可能对应不同的解决方案。不过,在没有具体错误信息的情况下,我们可以从几个常见的角度入手,提供一些可能的代码修改和配置调整方法。

1. 检查uni-app与鸿蒙系统的兼容性

确保你使用的uni-app版本支持鸿蒙系统。可以在DCloud的官方文档或社区中查找相关信息。如果当前版本不支持,考虑降级uni-app版本或等待官方更新。

2. 配置manifest.json

manifest.json文件中,确保你已经正确配置了鸿蒙平台的相关信息。例如:

{
  "mp-huawei": { // 鸿蒙平台配置
    "appid": "你的鸿蒙应用ID",
    "setting": {
      "urlCheck": false
    }
  }
}

3. 适配鸿蒙系统的API调用

由于鸿蒙系统可能与其他平台(如微信小程序、H5等)存在差异,因此在调用API时需要注意适配。例如,如果使用了某些特定于其他平台的API,可能需要替换为鸿蒙系统支持的API。

4. 检查第三方插件

如果你的项目中使用了第三方插件,确保这些插件也支持鸿蒙系统。可以在插件的官方文档或GitHub仓库中查找相关信息。如果插件不支持鸿蒙系统,考虑寻找替代方案或自行修改插件代码。

5. 示例代码:条件编译

为了兼容不同平台,可以使用条件编译来区分不同平台的代码。例如:

// #ifdef MP-HUAWEI
console.log('这是鸿蒙系统特有的代码');
// 调用鸿蒙系统特有的API
// #endif

// #ifndef MP-HUAWEI
console.log('这是非鸿蒙系统的代码');
// 调用其他平台的API
// #endif

6. 调试和日志

使用uni-app提供的调试工具和日志功能来查找和分析错误。在鸿蒙设备上运行应用,并观察控制台输出的日志信息,以确定错误的具体位置和原因。

总结

由于你没有提供具体的错误信息,以上只是一些通用的解决方法和建议。在实际操作中,建议根据报错信息进行有针对性的排查和解决。如果问题仍然存在,建议向DCloud官方或uni-app社区寻求帮助,提供详细的错误信息和代码示例以便他人更好地理解和解决问题。

回到顶部