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

Expo构建Android失败:':app:bundleReleaseJsAndAssets'任务执行出错

解决EAS Build构建Android生产版时nativewind相关的打包错误

问题原因

该错误源于nativewind依赖的PostCSS插件使用了异步API,但Metro打包器在处理CSS时不支持异步流程,导致bundleReleaseJsAndAssets任务执行阻塞失败。

排查修复步骤

1. 对齐依赖版本兼容性

  • 升级nativewind至最新稳定版,确保和你的React Native版本匹配:
    npm install nativewind@latest
    
  • 同步PostCSS及配套插件(如tailwindcss)的版本,避免版本冲突,参考适配版本示例:
    // package.json中建议的依赖版本
    "nativewind": "^2.0.11",
    "tailwindcss": "^3.3.2",
    "postcss": "^8.4.24"
    

2. 修正PostCSS配置

在项目根目录的postcss.config.js中,确保配置为同步模式,移除或替换异步插件:

module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
    // 删除任何依赖异步回调的自定义PostCSS插件
  },
};

注意:若使用了第三方PostCSS插件,需确认其支持同步处理逻辑,否则直接移除。

3. 调整Metro配置适配CSS解析

在metro.config.js中添加CSS文件的解析支持:

const { getDefaultConfig } = require('expo/metro-config');
const config = getDefaultConfig(__dirname);

config.resolver.sourceExts.push('css');

module.exports = config;

4. 清理缓存后重新构建

  • 清理EAS Build远程缓存:
    eas build --clear-cache
    
  • 本地清理缓存后测试:
    npx expo start --clear
    

5. 检查eas.json构建配置

确保Android生产构建配置无冲突项,比如自定义Gradle命令不要干扰打包流程:

{
  "build": {
    "production": {
      "android": {
        "buildType": "app-bundle",
        "gradleCommand": ":app:bundleRelease"
      }
    }
  }
}

验证修复效果

先执行本地生产打包测试,确认错误已解决:

npx expo run:android --variant release

本地打包成功后,再提交EAS Build远程构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:22:08