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

Expo React Native在Expo Go报Can't find variable: TextDecoder

报错原因

这是React Native跨端环境API不一致导致的典型错误:

  • 浏览器环境原生实现了Web标准的TextDecoder/TextEncoder编码API,因此项目在Web端可正常运行
  • Expo Go 内的React Native原生JS运行时(Android默认Hermes引擎、旧版iOS JavaScriptCore引擎)未内置上述两个API
  • 项目依赖的第三方库(编码处理工具、云服务SDK、Web3类库等是高发场景)调用TextDecoder时,运行环境找不到对应变量就会抛出该引用错误。
修复方案

方案1:通用polyfill补全API(优先推荐)

  1. 在项目根目录执行命令,安装Expo兼容的polyfill依赖:
npx expo install text-encoding
  1. 打开项目入口文件(通常是根目录下的App.js/App.tsx,若存在自定义index.js则选择该文件),在所有其他导入语句的最顶部加入polyfill导入:
// 必须放在所有import的最前面,先于业务代码、第三方库加载
import 'text-encoding';
  1. 清除Metro打包缓存,重启开发服务:
npx expo start -c

重新在Expo Go中打开项目即可正常运行。

方案2:Hermes引擎兼容方案

如果方案1在Android Hermes环境下存在兼容问题,可替换为轻量编码polyfill:

  1. 安装对应依赖:
npx expo install fastestsmallesttextencoderdecoder
  1. 同样在入口文件最顶部加入导入语句:
import 'fastestsmallesttextencoderdecoder';
  1. 执行npx expo start -c清缓存重启服务即可。

注意:polyfill导入必须放在所有导入逻辑的最顶部,否则第三方依赖加载时仍会找不到TextDecoder变量;重启服务必须加-c参数清除旧打包缓存,否则缓存的历史bundle会导致修复不生效。

内容的提问来源于stack exchange,提问作者José Carlos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:18:49