HarmonyOS 鸿蒙Next 打开 高德地图APP提示错误码16000050和16000001的解决方案
HarmonyOS 鸿蒙Next 调研打开手机内的高德地图APP测试记录,以及错误码16000050和16000001的解决方案
【完整代码】
import { BusinessError } from ‘@ohos.base’;
import { common, Want } from ‘@kit.AbilityKit’;
@Entry
@Component
struct Page43 {
build() {
Column() {
Button(‘跳转到高德地图’).onClick(() => {
let want: Want = {
bundleName: ‘com.amap.hmapp’,
abilityName: ‘EntryAbility’
};
(getContext(this) as common.UIAbilityContext).startAbility(want).then(() => {
console.info(‘Start settings ability successfully.’);
}).catch((err: BusinessError) => {
console.error(Failed to startAbility. Code: ${err.code}, message: ${err.message}
);
});
})
}
.width(‘100%’)
.height(‘100%’)
}
}
【起因】
我在mate 60 pro(鸿蒙next版)手机中安装了鸿蒙版高德地图APP,想在自己的工程通过点击按钮打开高德。
【经过】
于是利用SDK目录下的hdc命令hdc shell bm dump -a,获取手机应用列表包名。找到了com.amap.hmapp
然后根据want文档配置高德的bundleName尝试启动高德地图
let want: Want = {
bundleName: ‘com.amap.hmapp’,
};
【结果】显示“暂无支持此类文件的应用”
同时报错:Failed to startAbility. Code: 16000050, message: Internal error.
原来是因为 bundleName和 abilityName都是必填项。
修改后运行,点击没反应
let want: Want = {
bundleName: ‘com.amap.hmapp’,
abilityName: ‘test’
};
查看日志,又报错了
Failed to startAbility. Code: 16000001, message: The specified ability does not exist.
找不到abilityName,于是猜测高德的默认名称可能和新建项目时给的EntryAbility一样,没改过。
再次尝试,跳转成功!
我能查到,因为按字母排序的,所以在最后面。 【小红书】com.xingin.xhs_hos 【微博】com.sina.weibo.stage
作为IT专家,针对HarmonyOS 鸿蒙Next API 11学习中遇到的高德地图APP打开问题以及错误码16000050和16000001的解决方案,提供以下专业解答:
错误码16000050通常是由于在尝试启动应用时未正确填写必要的参数。在启动高德地图时,需要确保bundleName
和abilityName
都是正确的。bundleName
为com.amap.hmapp
,而abilityName
需要是高德地图的默认启动Ability名称,通常是EntryAbility
。
错误码16000001则表明指定的Ability不存在。这通常发生在abilityName
填写错误或者该Ability在目标应用中不存在时。检查abilityName
是否与目标应用中的Ability名称一致,确保没有拼写错误或大小写错误。
在解决这两个错误时,可以采取以下步骤:
- 确认
bundleName
和abilityName
是否正确。 - 查看目标应用(高德地图)的文档或源码,确认默认的Ability名称。
- 编写代码时,确保传递给
startAbility
方法的参数正确无误。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。他们将能提供更具体的帮助和解决方案。