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

Expo环境下iOS打包成功,Android无法解析@env模块求助

Expo Android打包无法解析@env的解决方案
  • 确认Expo项目类型与插件兼容性
    Expo的managed workflow(纯Expo项目)对第三方babel插件的支持有限,react-native-dotenv可能无法正常适配Android打包流程,建议优先使用Expo官方环境变量方案;若为bare workflow(原生混合项目),需确保依赖安装完整且配置正确。

  • 修正babel.config.js配置
    确保配置正确注入react-native-dotenv插件,示例配置如下:

    module.exports = function(api) {
      api.cache(true);
      return {
        presets: ['babel-preset-expo'],
        plugins: [
          ['module:react-native-dotenv', {
            moduleName: '@env',
            path: '.env',
            allowUndefined: true
          }]
        ]
      };
    };
    
  • 清除缓存后重新构建

    • 执行expo r -c清除Expo缓存,再尝试打包Android
    • 若为bare workflow,进入android目录执行./gradlew clean,再重新构建项目
  • 切换至Expo官方环境变量方案(推荐)
    无需依赖第三方插件,Expo原生支持环境变量:

    1. 在.env文件中定义变量,前缀需为EXPO_PUBLIC_,例如:EXPO_PUBLIC_TEST_KEY=your_api_key
    2. 在App.js中通过expo-constants获取:
      import Constants from 'expo-constants';
      const TEST_KEY = Constants.expoConfig.env.EXPO_PUBLIC_TEST_KEY;
      

    该方案完全适配Expo的iOS/Android打包流程,不会出现模块解析问题。

  • Bare workflow额外检查

    1. 确认已安装依赖:npm install react-native-dotenv --save-dev
    2. 检查android/app/build.gradle是否未覆盖babel相关配置,确保插件能正常生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:35:00