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

Ionic Capacitor Android构建失败求助:Gradle任务执行出错

React Ionic 转 Android 构建失败:无法创建目录 /node_modules/@capacitor/android/capacitor/build

问题描述

我有一个 React Ionic 应用,iOS 端打包转换完全正常,但执行 npx cap run android 构建 Android 应用时失败,核心报错信息如下:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':capacitor-android:writeDebugAarMetadata'.
> Failed to create parent directory
'/Users/yarin/Desktop/dashboard/project/node_modules/@capacitor/android/capacitor/build' when creating directory
'/Users/yarin/Desktop/dashboard/project/node_modules/@capacitor/android/capacitor/build/intermediates/aar_metadata/debug'

完整构建日志:

yarin@h-MacBook-Pro-sl-Yarin-2 project % npx cap run android
✔ Copying web assets from build to android/app/src/main/assets/public in 21.14ms
✔ Creating capacitor.config.json in android/app/src/main/assets in 574.33μs
[info] Inlining sourcemaps
✔ copy android in 68.90ms
✔ Updating Android plugins in 4.05ms
[info] Found 5 Capacitor plugins for android:
@capacitor/app@4.1.1
@capacitor/device@4.1.0
@capacitor/haptics@4.1.0
@capacitor/keyboard@4.1.1
@capacitor/status-bar@4.1.1
✔ update android in 32.75ms
✔ Please choose a target device: › Google sdk_gphone64_arm64 (emulator-5554)
✖ Running Gradle build - failed!
[error]
> Configure project :app
WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

> Configure project :capacitor-cordova-android-plugins
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    
    > Task :app:preBuild UP-TO-DATE
    > Task :app:preDebugBuild UP-TO-DATE
    > Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
    > Task :capacitor-android:preBuild UP-TO-DATE
    > Task :capacitor-android:preDebugBuild UP-TO-DATE
    > Task :capacitor-android:compileDebugAidl NO-SOURCE
    > Task :capacitor-app:preBuild UP-TO-DATE
    > Task :capacitor-app:preDebugBuild UP-TO-DATE
    > Task :capacitor-app:compileDebugAidl NO-SOURCE
    > Task :capacitor-cordova-android-plugins:preBuild UP-TO-DATE
    > Task :capacitor-cordova-android-plugins:preDebugBuild UP-TO-DATE
    > Task :capacitor-cordova-android-plugins:compileDebugAidl NO-SOURCE
    > Task :capacitor-device:preBuild UP-TO-DATE
    > Task :capacitor-device:preDebugBuild UP-TO-DATE
    > Task :capacitor-device:compileDebugAidl NO-SOURCE
    > Task :capacitor-haptics:preBuild UP-TO-DATE
    > Task :capacitor-haptics:preDebugBuild UP-TO-DATE
    > Task :capacitor-haptics:compileDebugAidl NO-SOURCE
    > Task :capacitor-keyboard:preBuild UP-TO-DATE
    > Task :capacitor-keyboard:preDebugBuild UP-TO-DATE
    > Task :capacitor-keyboard:compileDebugAidl NO-SOURCE
    > Task :capacitor-status-bar:preBuild UP-TO-DATE
    > Task :capacitor-status-bar:preDebugBuild UP-TO-DATE
    > Task :capacitor-status-bar:compileDebugAidl NO-SOURCE
    > Task :app:compileDebugAidl NO-SOURCE
    > Task :capacitor-android:packageDebugRenderscript NO-SOURCE
    > Task :capacitor-app:packageDebugRenderscript NO-SOURCE
    > Task :capacitor-cordova-android-plugins:packageDebugRenderscript NO-SOURCE
    > Task :capacitor-device:packageDebugRenderscript NO-SOURCE
    > Task :capacitor-haptics:packageDebugRenderscript NO-SOURCE
    > Task :capacitor-keyboard:packageDebugRenderscript NO-SOURCE
    > Task :capacitor-status-bar:packageDebugRenderscript NO-SOURCE
    > Task :app:compileDebugRenderscript NO-SOURCE
    > Task :app:generateDebugBuildConfig
    > Task :app:javaPreCompileDebug
    > Task :capacitor-android:writeDebugAarMetadata FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':capacitor-android:writeDebugAarMetadata'.
    > Failed to create parent directory
    '/Users/yarin/Desktop/dashboard/project/node_modules/@capacitor/android/capacitor/build' when creating directory
    '/Users/yarin/Desktop/dashboard/project/node_modules/@capacitor/android/capacitor/build/intermediates/aar_metadata/debug'

解决步骤

1. 修复目录权限

报错本质是Gradle无权限写入node_modules目录,Mac系统执行以下命令赋予当前用户完整权限:

sudo chown -R $(whoami) /Users/yarin/Desktop/dashboard/project/node_modules

Linux系统替换为:

sudo chown -R $USER /Users/yarin/Desktop/dashboard/project/node_modules

Windows用户右键以管理员身份打开终端后再执行构建命令。

2. 清理依赖缓存并重装

  • 删除旧依赖和锁文件:
rm -rf node_modules package-lock.json yarn.lock
  • 重新安装依赖:
npm install
# 若使用yarn则执行:yarn install

3. 重置Capacitor Android平台

  • 移除现有Android平台:
npx cap remove android
  • 重新添加并同步:
npx cap add android
npx cap sync android

4. 手动创建缺失目录

若权限修复后仍报错,手动创建目标目录:

mkdir -p /Users/yarin/Desktop/dashboard/project/node_modules/@capacitor/android/capacitor/build/intermediates/aar_metadata/debug

之后重新执行构建:

npx cap run android

5. 处理flatDir警告(可选)

如果flatDir警告导致构建异常,打开android/build.gradle文件,移除flatDir配置块,改用标准Maven仓库管理依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:04:55