HarmonyOS 鸿蒙Next中定位报错
HarmonyOS 鸿蒙Next中定位报错 调用定位API报错Cannot read property ACCURACY of undefined。
【解决方案】
开发者您好,请排查:
1、是否在 module.json5 中声明 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 权限,并进行动态弹窗申请;
2、获取位置信息返回的结果是否为 undefined。
如果排查未发现异常,请提供可以复现问题的demo方便问题分析解决。
更多关于HarmonyOS 鸿蒙Next中定位报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
无法读取未定义属性ACCURACY。 建议你参考定位指南文档,使用官方示例代码进行测试和修改。
鸿蒙Next定位报错常见原因:权限未声明或动态申请失败(需ohos.permission.LOCATION与ohos.permission.APPROXIMATELY_LOCATION),或系统位置服务未开启。API调用需在UIAbility或Page中正确使用geolocation.on('locationChange')或getCurrentLocation,错误码201表示权限被拒,202表示位置服务关闭。检查module.json5权限列表及代码中权限请求逻辑即可。
该错误是因为代码尝试读取一个 undefined 对象的 ACCURACY 属性。在 HarmonyOS Next 的定位 API 中,定位精度通常通过 geoLocationManager.LocationAccuracy 枚举来设置,而不是直接使用 ACCURACY 常量。
常见错误写法:
let request = {
accuracy: geoLocationManager.ACCURACY_HIGH // geoLocationManager.ACCURACY 为 undefined
};
正确写法:
import { geoLocationManager } from '@ohos.geoLocationManager';
let request = {
priority: geoLocationManager.LocationRequestPriority.FIRST_FIX,
timeInterval: 1,
accuracy: geoLocationManager.LocationAccuracy.HIGH // 使用正确的枚举
};
请排查你的代码中是否误用了精度常量的名称,并确认已从 @ohos.geoLocationManager 正确导入所需类型。修正后即可正常调用定位接口。

