HarmonyOS鸿蒙Next中00402028 ErrorDescription:Ability is not visible
HarmonyOS鸿蒙Next中00402028 ErrorDescription:Ability is not visible 6.02版本Deveco,在一个entry创建了两个Ability,在模拟器运行启动新建这个Ability就报标题的错,需要指定Launch Options才能启动,请问只能这样启动吗?还是有其他办法?

更多关于HarmonyOS鸿蒙Next中00402028 ErrorDescription:Ability is not visible的实战教程也可以访问 https://www.itying.com/category-93-b0.html
开发者您好,如果您不想调整Launch Options中的配置,可以恢复Launch Options中的默认配置:Launch选择:Default Ability,然后开发者可以通过修改module.json5配置文件中的mainElement属性,指定您需要启动的ability即可;然后开发者您报的这个错误可以参考这个文档修改配置即可:00402028 应用启动时ability不可见。
更多关于HarmonyOS鸿蒙Next中00402028 ErrorDescription:Ability is not visible的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
谢谢,修改module.json5配置文件中的mainElement属性,指定您需要启动的ability,可以启动了
好像是这样的,楼主可以去找下官方文档里面的说明,启动类型限制是有限制的:非主入口 Ability 需通过显式启动(Explicit Launch)调用。
错误码00402028表示目标Ability不可见。常见原因:在module.json5中未将Ability的visible字段设为true,或跨模块调用时未正确配置exported属性。需检查配置文件,确保对调用方应用开放可见。
这个错误 00402028 Ability is not visible 表示你试图启动的新 Ability 没有被系统识别为可公开启动的对象。在 HarmonyOS Next(Stage 模型)中,只有声明了 skills 且包含 ohos.want.action.home 的 Ability 才能作为桌面入口直接点击启动。你在一个 entry 里创建了多个 Ability,直接运行新 Ability 就会报此错。
解决方法不止“指定 Launch Options”一种,还有两种更常规的做法:
-
显式 Want 跳转
在已有 Ability(比如主 Ability)内部通过代码启动新 Ability,Want 中明确指定bundleName和abilityName:let want: Want = { bundleName: 'com.example.yourapp', abilityName: 'YourNewAbility' }; this.context.startAbility(want);这样无需配置 skills,完全由应用内部控制。
-
配置 skills 使其成为入口 Ability
在module.json5中为新 Ability 添加skills,使其也能在桌面显示:"abilities": [ { "name": "YourNewAbility", "skills": [ { "actions": ["ohos.want.action.home"], "entities": ["ohos.entity.home"] } ] } ]这样你就能直接从桌面启动它,但通常一个 entry 只应有一个主入口 Ability。
因此,你不需要每次都通过 Launch Options 手动指定,根据场景选择上述方法即可。

