DevEco Studio在新增的模块里面新增一个TestAbility运行模拟器报The abilitieType or abilityName attribute does not exist.

DevEco Studio在新增的模块里面新增一个TestAbility运行模拟器报The abilitieType or abilityName attribute does not exist. 今天在新增的模块里面新增一个TestAbility然后运行模拟器就会报The abilitieType or abilityName attribute does not exist.,我只是新增一个页面,我看了配置文件也没有什么特殊的,这个配置文件改动是工具自动新增的,求助大佬看看是什么问题导致的,项目模块目录如下

config.json文件代码如下,我看了一下好像也没有什么错误

{
  "app": {
    "bundleName": "com.example.abilitytransfertest",
    "vendor": "example",
    "version": {
      "code": 1,
      "name": "1.0"
    },
    "apiVersion": {
      "compatible": 3,
      "target": 3
    }
  },
  "deviceConfig": {},
  "module": {
    "package": "com.example.elementscattertest",
    "name": ".ElementScatterTest",
    "reqCapabilities": [
      "video_support"
    ],
    "deviceType": [
      "tv"
    ],
    "distro": {
      "deliveryWithInstall": true,
      "moduleName": "elementscattertest",
      "moduleType": "feature"
    },
    "abilities": [
      {
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "entity.system.home"
            ]
          }
        ],
        "orientation": "landscape",
        "formEnabled": false,
        "name": "com.example.elementscattertest.MainAbility",
        "icon": "$media:icon",
        "description": "$string:mainability_description",
        "label": "ElementScatterTest",
        "type": "page",
        "launchType": "standard"
      },
      {
        "orientation": "landscape",
        "formEnabled": false,
        "name": "com.example.elementscattertest.TestAbility",
        "icon": "$media:icon",
        "description": "$string:testability_description",
        "label": "elementscattertest",
        "type": "page",
        "launchType": "standard"
      }
    ]
  }
}

没有添加这个TestAbility的时候,运行模拟器是正常的,一添加就报错,导致别的模块运行模拟器也没反应,然后我把新增的这个相关的ability和abilitySlice以及xml和config.json文件里相关的也删掉,模拟器运行也没反应,只有把DevEcoStudio重启再运行模拟器才能运行成功,有效果


8 回复

楼主在开发的过程中是不是自己改过 modle的name呢,然后对应config.json文件内部的一些标签是大写,一些是小写


您好,测试木有复现问题捏,建议您通过工单路径提供下日志https://developer.huawei.com/consumer/cn/support/feedback/#/add/90011/HAOS0001 将会有技术人员直接为您解决问题,感谢支持~

好的,谢谢,正常是没问题,之前我新建也没问题,现在这一个项目里面好多模块,既有Js又有Java的,然后有好几个,同一个工程,我在三台电脑上跑过,不知道跟这个有没有关系,我看一下能提就提个日志

提交工单一直提示操作失败,也没说啥原因。。。

图片

您好,请再尝试下使用工单提交问题,如果还是提示操作失败,则点击F12键把控制台调出来,
看console和network是否有报红,如果有报红的,把报红信息发下,感谢支持~

亲爱滴开发者 ,这个问题已经在处理中啦,稍后答复你哟 ,么么哒

在DevEco Studio中,当你在新增的模块里添加一个TestAbility并运行模拟器时,如果遇到“The abilitieType or abilityName attribute does not exist”错误,通常是由于配置文件中的abilityType或abilityName属性缺失或配置不正确导致的。

在鸿蒙系统中,每个Ability都需要在config.json文件中进行声明和配置。确保在config.json文件的abilities节点下,正确配置了abilityTypeabilityName属性。abilityType通常用于指定Ability的类型,如pageservice等,而abilityName则是Ability的唯一标识符。

例如,一个基本的Ability配置可能如下所示:

{
  "abilities": [
    {
      "name": "com.example.TestAbility",
      "type": "page",
      "visible": true,
      "launchType": "standard"
    }
  ]
}

确保name属性与代码中的Ability类名一致,type属性根据Ability的类型正确设置。如果这些属性缺失或配置错误,模拟器将无法正确识别和运行该Ability,从而报出上述错误。

检查并修正config.json文件中的相关配置后,重新编译并运行项目,问题应得到解决。

该错误通常是由于config.json文件中缺少或错误配置了abilityTypeabilityName属性。请检查config.json文件,确保在abilities节点下正确配置了abilityTypeabilityName属性。例如:

"abilities": [
    {
        "name": ".TestAbility",
        "type": "page"
    }
]

确保nametype属性存在且正确。如果问题仍然存在,建议清理项目并重新构建。

回到顶部