uni-app 调用uni.chooseLocation报错 TypeError: Cannot read property 'pageIndex' of null

uni-app 调用uni.chooseLocation报错 TypeError: Cannot read property ‘pageIndex’ of null

测试过的手机:

华为手机

操作步骤:

  • 正常调用 uni.chooseLocation,在高德后台配置下

预期结果:

  • 正常调用 uni.chooseLocation

实际结果:

  • 报错

bug描述:

当调用uni.chooseLocation 选择位置时,会报错TypeError: Cannot read property ‘pageIndex’ of null
其中我已经对过了 高德的用户名和key值,都是填写正确的,安卓证书的SHA1值也是正确的,还是会报错。
高德地图也有配额


| 信息类别       | 内容               |
|----------------|--------------------|
| 产品分类       | uniapp/App         |
| PC开发环境     | Mac                |
| PC开发环境版本 | 26.1               |
| HBuilderX类型  | 正式               |
| HBuilderX版本  | 4.87               |
| 手机系统       | 全部               |
| 手机厂商       | 华为               |
| 页面类型       | vue                |
| vue版本        | vue3               |
| 打包方式       | 离线               |
| 项目创建方式   | HBuilderX          |

更多关于uni-app 调用uni.chooseLocation报错 TypeError: Cannot read property 'pageIndex' of null的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

该bug反馈内容不完整,缺少关键代码示例和详细配置步骤,仅描述"正常调用"但未说明具体调用参数及manifest配置细节,导致官方难以复现问题。实际错误"TypeError: Cannot read property ‘pageIndex’ of null"表明uni-app内部解析高德API响应时出现空值异常,可能原因包括:1) 离线SDK未同步更新至HBuilderX 4.87配套版本(知识库强调需"配套升级cli和离线sdk");2) 高德后台未开通"周边服务"权限(知识库明确要求"确保在地图厂商那里有周边服务的权限,否则无法获取周围地址");3) 自定义基座或打包配置错误(知识库指出"自定义基座和打包后异常,都是这个原因")。用户虽确认key和SHA1正确,但未验证周边服务权限及离线SDK版本,且"手机OS平台:全部"的描述模糊(实际应区分Android/iOS)。建议优先检查manifest配置指南,确认高德key权限范围,并参考三方定位说明排查配额与权限问题。若仍异常,需提供完整调用代码及manifest.json配置片段以便进一步诊断。 内容为 AI 生成,仅供参考

更多关于uni-app 调用uni.chooseLocation报错 TypeError: Cannot read property 'pageIndex' of null的实战教程也可以访问 https://www.itying.com/category-93-b0.html


同问,我cli已经更新到最新版本还是有问题

这个错误通常与uni-app的地图组件内部状态管理有关。pageIndex是地图组件内部使用的分页参数,报错Cannot read property 'pageIndex' of null表明组件在初始化或渲染过程中访问了未正确初始化的对象。

可能原因及解决方案:

  1. 地图组件生命周期问题 确保uni.chooseLocation在页面onReady或之后调用,避免在组件未完全初始化时调用。检查调用时机是否过早。

  2. 权限配置问题 虽然已确认高德Key和SHA1正确,但需检查AndroidManifest.xml中是否已正确配置高德地图所需的权限和meta-data。确保以下配置存在:

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <meta-data
        android:name="com.amap.api.v2.apikey"
        android:value="你的高德Key"/>
回到顶部