HarmonyOS 鸿蒙Next 官方案例的组件自定义ID后报错

HarmonyOS 鸿蒙Next 官方案例的组件自定义ID后报错

Deveco studio版本:3.1.0.101  
API版本:API 9  

问题:复制的官方代码([https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-container-relativecontainer-0000001430600665-V3](https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-container-relativecontainer-0000001430600665-V3)),工具报错--The current component id "bt1" is duplicate with

```javascript
[@Entry](/user/Entry)
[@Componentstruct](/user/Componentstruct) Index222 {
  build() {
    Row() {
      Button("Extra button")
        .width(100)
        .height(50)
      // 外层容器的id默认为为'__container__'
      RelativeContainer() {
        Button("Button 1")
          .width(120)
          .height(30)
          .alignRules({
            middle: { anchor: "__container__", align: HorizontalAlign.Center }, // 水平方向上,组件中部与容器中间对齐,即组件在容器中水平居中
          })
          .id("bt1") // id设置为bt1
          .borderWidth(1)
          .borderColor(Color.Black)
        Text("This is text 2")
          .fontSize(20)
          .padding(10)
          .borderWidth(1)
          .borderColor(Color.Black)
          .height(30)
          .id("tx2") // id设置为tx2
          .alignRules({
            bottom: { anchor: "__container__", align: VerticalAlign.Bottom }, // 组件下边与容器下边对齐
            top: { anchor: "bt1", align: VerticalAlign.Bottom }, // 组件上边与button1底部对齐
            right: { anchor: "bt1", align: HorizontalAlign.Center } // 组件右侧与button1中间点对齐
          })
        LoadingProgress()
          .color(Color.Blue)
          .borderWidth(1)
          .borderColor(Color.Black)
          .height(30)
          .width(30)
          .id("lp3") // id设置为lp3
          .alignRules({
            left: { anchor: "bt1", align: HorizontalAlign.End }, // 组件左边对齐容器bt1的右边
            top: { anchor: "tx2", align: VerticalAlign.Center }, // 组件上边对齐容器tx2的中间
            bottom: { anchor: "__container__", align: VerticalAlign.Bottom } // 组件下边对齐最外层容器的底边
          })
        Gauge({ value: 50, min: 0, max: 100 })
          .startAngle(210)
          .endAngle(150)
          .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1], [0xD94838, 1]])
          .strokeWidth(20)
          .width(50)
          .height(50)
          .alignRules({
            left: { anchor: "tx2", align: HorizontalAlign.End }, // 组件左边对齐容器tx2的右边
            right: { anchor: "__container__", align: HorizontalAlign.End }, // 组件右边对齐最外层容器的右边
            top: { anchor: "__container__", align: VerticalAlign.Top }, // 组件上边对齐最外层容器的上边
            bottom: { anchor: "lp3", align: VerticalAlign.Top } // 组件下边对齐容器lp3的上边
          })
          .id("g4")
          .borderWidth(1)
          .borderColor(Color.Black)
      }
      .width(200).height(200)
      .backgroundColor(Color.Orange)
    }.height('100%')
  }
}

这个报错是正常的吗?虽然报错,但是程序是正常运行的


更多关于HarmonyOS 鸿蒙Next 官方案例的组件自定义ID后报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

报错截图

更多关于HarmonyOS 鸿蒙Next 官方案例的组件自定义ID后报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你这个是OpenHarmony的还是HarmonyOS的工程,

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

harmonyOS 的工程,

- 项目名称: Sample
- 项目版本: 2.0
- 项目作者: John Doe
- 项目描述: 这是一个示例项目,展示了如何创建一个基本的HarmonyOS应用。

这个该去确认了下,已经修复了,需要等待之后的版本!

我这边测试没有报错呀,正常的,你报报错截图发一下!

报错截图如下楼,回复不能单独添加图片,

针对“HarmonyOS 鸿蒙Next 官方案例的组件自定义ID后报错”的问题,这里提供一个可能的解决方案方向,不涉及Java或C语言内容。

在HarmonyOS开发中,组件的自定义ID通常用于在代码中唯一标识组件,便于进行查找和操作。如果在自定义ID后遇到报错,可能的原因包括:

  1. ID命名冲突:确保自定义的ID在全局范围内是唯一的,没有与其他组件或资源的ID重复。

  2. XML与代码不一致:检查XML布局文件中定义的ID与代码中引用的ID是否完全一致,包括大小写和拼写。

  3. 资源未正确加载:确保XML文件已被正确编译并加载到项目中,没有因为编译错误或资源路径问题导致ID无法识别。

  4. API或版本问题:确认使用的HarmonyOS SDK版本与官方案例的版本一致,有时候API的变更可能导致旧代码在新版本中无法正常工作。

  5. 重新构建项目:尝试清理并重新构建项目,有时候IDE的缓存问题可能导致资源识别错误。

如果以上方法均无法解决问题,可能是具体的报错信息指向了更深层次的问题,需要具体分析报错日志。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部