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

使用EAS构建Expo Android应用时遭遇expo-location模块Kotlin编译失败问题

EAS构建Expo Android应用时遭遇expo-location模块Kotlin编译失败问题

看起来你在用EAS构建Android应用时,被expo-location模块的Kotlin编译错误给卡住了——找不到UPSIDE_DOWN_CAKE和FOREGROUND_SERVICE_LOCATION这两个引用对吧?我来帮你拆解下问题原因和解决办法:

问题根源

这两个标识符都是**Android 14(API级别34)**才新增的:

  • UPSIDE_DOWN_CAKE是Android 14的版本代号常量
  • FOREGROUND_SERVICE_LOCATION是Android 14新增的前台服务权限相关常量

你当前项目配置的compileSdkVersion和targetSdkVersion都是33(哪怕降到31也没用),但你用的expo-location版本已经适配了Android 14,导致编译器在低版本SDK环境下找不到这些新API的定义,自然就抛出编译错误了。

可行解决办法

这里给你几个实用方案,你可以根据自己的项目情况选择:

方案1:升级编译SDK版本到34

直接把项目的Android编译和目标SDK版本升到34,就能兼容这些新API了。修改你的app.json配置:

"expo-build-properties",
{
  "android": {
    "usesCleartextTraffic": true,
    "compileSdkVersion": 34,
    "targetSdkVersion": 34
  }
}

修改完成后,建议执行eas build --clear-cache清除构建缓存,再重新触发构建,避免缓存残留导致的问题。

方案2:降低expo-location的版本

如果暂时不想升级SDK版本,可以回退到还未适配Android 14的expo-location稳定版本,比如expo-location@^15.1.1(这个版本是Android 14适配前的迭代版本):

  1. 修改package.json里的expo-location版本号
  2. 执行npm install或yarn install更新依赖
  3. 重新执行EAS构建

方案3:核对Expo SDK与依赖版本的兼容性

如果你的Expo SDK版本比较旧,也可能出现这种依赖版本不匹配的问题。建议确认你当前使用的Expo SDK版本,是否和expo-location版本兼容(比如Expo SDK 49对应的expo-location版本是否支持API 33),调整到匹配的版本组合即可。

备注:内容来源于stack exchange,提问作者IT EKOFOOD

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:14:32