You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入expo-location报Unable to resolve module ./ExpoLocation错误求解

Expo Location 模块解析错误修复方案

问题相关代码

触发报错的导入代码如下:

import * as Location from 'expo-location';

报错在Expo Go启动时触发,核心错误信息为:

无法从路径C:\Users\USER\location\node_modules\expo-location\build\Location.js解析模块./ExpoLocation,对应路径下所有适配后缀的ExpoLocation文件均不存在。
错误栈指向Location.js第二行的import ExpoLocation from './ExpoLocation';语句,同时报错信息中包含ABI45_0_0标识。

问题根因

expo-location安装版本与当前项目使用的Expo SDK版本、本地Expo Go客户端版本不匹配。
报错中的ABI45_0_0说明当前运行环境为Expo SDK 45,若安装的expo-location版本高于该SDK适配的版本范围,就会缺失对应SDK版本的原生桥接文件ExpoLocation,导致Metro打包时无法解析模块。

修复步骤

按顺序执行以下操作:

  • 清除项目现有依赖与缓存

    • 删除项目根目录下的node_modules文件夹
    • 删除对应包管理器的锁文件:npm对应package-lock.json,yarn对应yarn.lock,pnpm对应pnpm-lock.yaml
  • 安装SDK 45适配版本的expo-location

    npm执行:

    npm install expo-location@~14.3.0
    

    yarn执行:

    yarn add expo-location@~14.3.0
    

    注:14.3.x是expo-location官方适配Expo SDK 45的版本区间,禁止安装更高版本

  • 清除Expo打包缓存并启动服务

    npx expo start -c
    
  • 校验本地Expo Go版本
    若启动后仍报错,卸载手机端现有Expo Go,重新安装对应SDK 45的Expo Go客户端,再扫码连接开发服务即可。

额外排查项

如果上述步骤执行后问题仍存在,检查是否做过自定义原生link操作:

  • 若之前执行过expo prebuild或手动修改过原生目录配置,执行npx expo prebuild --clean清除自定义原生配置后,再重新启动Expo Go开发服务即可,Expo Go环境不支持自定义编译的原生模块,仅能使用SDK预置的原生模块能力。

内容的提问来源于stack exchange,提问作者yeinp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:06:06