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

Android模拟器运行Expo时出现Unexpected token无堆栈报错求助

Expo Android模拟器运行报Unexpected Token错误(调试模式正常)

问题详情

在Android模拟器中运行Expo项目时出现Unexpected token报错,无有效堆栈跟踪信息。调试模式下项目运行完全正常,已排除硬盘空间不足的因素。

报错截图

项目配置文件

Package.json

{
  "name": "project",
  "version": "1.0.0",
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@expo-google-fonts/kanit": "^0.2.2",
    "@expo-google-fonts/oxanium": "^0.2.2",
    "@fortawesome/fontawesome-svg-core": "^6.1.1",
    "@fortawesome/free-solid-svg-icons": "^6.1.1",
    "@fortawesome/react-native-fontawesome": "^0.3.0",
    "@react-navigation/drawer": "^6.4.3",
    "@react-navigation/native": "^6.0.11",
    "@react-navigation/native-stack": "^6.7.0",
    "axios": "^0.27.2",
    "expo": "^46.0.0",
    "expo-status-bar": "~1.4.0",
    "react": "18.0.0",
    "react-dom": "18.0.0",
    "react-native": "0.69.4",
    "react-native-dotenv": "^3.3.1",
    "react-native-reanimated": "~2.9.1",
    "react-native-safe-area-context": "4.3.1",
    "react-native-screens": "~3.15.0",
    "react-native-svg": "12.3.0",
    "react-native-web": "~0.18.7",
    "react-native-webview": "11.23.0",
    "react-native-youtube-iframe": "^2.2.2"
  },
  "devDependencies": {
    "@babel/core": "^7.18.6",
    "@babel/preset-react": "^7.18.6",
    "eslint": "^8.19.0",
    "eslint-plugin-react": "^7.30.1",
    "eslint-plugin-react-native": "^4.0.0"
  },
  "private": true
}

babel.config.js

module.exports = function(api) {
  api.cache(true);
  return {
    presets: [
      'babel-preset-expo'
    ],
    plugins: [
      'react-native-reanimated/plugin',
      'module:react-native-dotenv'
    ]
  };
};

可能的报错原因及解决方向

  • Babel插件顺序错误:react-native-reanimated/plugin必须放在Babel插件数组的最后一位,当前配置中它在module:react-native-dotenv前面,会导致转译逻辑冲突。调试模式下Expo会自动修正部分配置,但正常模式下直接使用你的配置文件,引发报错。调整插件顺序后重新启动项目。
  • 缓存异常:Expo的缓存可能残留了错误的转译文件,执行expo r -c清除缓存后再启动,多数无堆栈的奇怪报错都能通过这个操作解决。
  • 依赖版本不兼容:Expo 46对应React Native 0.69,部分第三方依赖可能存在版本适配问题。可以尝试临时移除非核心依赖(比如字体库、图标库),逐个恢复来排查出冲突的依赖,再更换为适配版本。
  • 未转译的ES语法:调试模式下JS引擎会兼容更多未转译的新语法,但正常模式下依赖Babel完整转译。检查项目代码或第三方依赖中是否存在babel-preset-expo未覆盖的ESNext语法,必要时添加额外的Babel插件处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:24:28