uni-app Picker 方法名冲突无法对鸿蒙进行打包发布

uni-app Picker 方法名冲突无法对鸿蒙进行打包发布

开发环境 版本号 项目创建方式
Windows win11 HBuilderX
HarmonyOS NEXT 6.0.0

示例代码:

import {
  onShow,
  onShareAppMessage
} from '@dcloudio/uni-app'

操作步骤:

进行发布操作

预期结果:

能够正确打包

实际结果:

无法正确打包

bug描述:

调试的时候可以修改 “Picker” 方法的名字.能够成功运行. 但是发布的时候,每次都会重新拉取.无法完成打包操作

1 ERROR: 10905237 ArkTS Compiler Error
[HBuilder] 13:59:05.920 Error Message: The struct name cannot contain reserved tag name: ‘Picker’. At File: /unpackage/dist/build/app-harmony/oh_modules/.ohpm/@dcloudio+uni-app-runtime@e61xy4t7udv6xbickvvkkdflr0p30afaiftcwqggq70=/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/components/Picker.ets:112:15
[HBuilder] 13:59:05.920 2 ERROR: 10905227 ArkTS Compiler Error
[HBuilder] 13:59:05.920 Error Message: The struct ‘Picker’ cannot have the same name as the built-in component ‘Picker’. At File: /unpackage/dist/build/app-harmony/oh_modules/.ohpm/@dcloudio+uni-app-runtime@e61xy4t7udv6xbickvvkkdflr0p30afaiftcwqggq70=/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/components/Picker.ets:112:14
[HBuilder] 13:59:05.920 COMPILE RESULT:FAIL {ERROR:3 WARN:635}


更多关于uni-app Picker 方法名冲突无法对鸿蒙进行打包发布的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

该bug反馈基本完整但存在不足:标题明确指出了Picker方法名冲突导致鸿蒙打包失败的问题;描述部分清晰说明了调试时可修改运行但发布失败的现象,并提供了详细的编译器错误信息(指出struct ‘Picker’与鸿蒙内置组件名称冲突);分类信息全面包含各版本及平台细节。但代码示例不完整(仅展示无关的onShow导入,未体现Picker使用),复现步骤过于简略(仅"进行发布操作"),缺乏关键操作流程。
bug成立且非误报。错误信息明确显示ArkTS编译器禁止使用保留标签名’Picker’,这与鸿蒙开发规范一致——系统内置Picker组件不允许自定义同名struct。知识库中运行和发行-常见问题提到类似ArkTS混淆问题,虽非直接匹配,但证实了鸿蒙平台对命名规范的严格限制。当前HBuilderX 4.87版本(对应2025年5位版本号e61xy)未解决此底层冲突。
非基础概念问题,而是真实技术冲突。需注意:鸿蒙平台与App(iOS/Android)独立,自定义组件命名必须避开系统保留字。解决方案应建议用户修改自定义Picker组件名称,或参考知识库临时方案在entry/obfuscation-rules.txt添加-disable-obfuscation禁用混淆(尽管此方案原用于组合式API报错,但可能缓解编译器严格检查)。同时提示检查uni-app runtime最新版本是否已修复此命名冲突。 内容为 AI 生成,仅供参考

更多关于uni-app Picker 方法名冲突无法对鸿蒙进行打包发布的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


@Ask小助手 所以是要等@dcloudio/uni-app-runtime或是Hbuilder的新版本修正是吗?
还是有其他方法能发布

提供复现工程并说明操作流程

只要项目里 有 from ‘@dcloudio/uni-app’; 去打包操作就会出现
我安装的是 deveco-studio-6.0.2.636 不知道是不是有关系
import {
onShow,
onLoad,
onReachBottom
} from ‘@dcloudio/uni-app’;

6.0.0 版本可以正常发布

是华为的问题,还在协调,建议不要使用 6.0.2

这是鸿蒙原生开发中的命名冲突问题。在HarmonyOS NEXT中,Picker是系统内置组件名称,与uni-app的Picker组件命名冲突。

解决方案:

  1. 临时方案:在manifest.json中配置编译条件
{
  "app-plus": {
    "harmony": {
      "compileMode": "common"
    }
  }
}
回到顶部