执行cordova build android时遭遇aapt超时问题求助
解决Cordova Android构建时AAPT2超时问题
我之前也碰到过一模一样的aapt2超时坑,结合你给出的环境信息,按下面的步骤逐一排查试试,应该能解决:
1. 先手动确认aapt2本身能不能正常运行
直接导航到C:\Users\Ivar\AppData\Local\Android\android-sdk\build-tools\26.0.2\这个路径:
- 双击运行
aapt2.exe,如果弹出「缺少xxx.dll」的提示,说明是依赖缺失,赶紧装Visual C++ Redistributable for Visual Studio 2017 x86版本(哪怕你是64位系统也要装x86的,aapt2依赖这个); - 如果双击只是一闪而过,打开命令行进入该目录,执行
aapt2.exe version,要是能正常输出版本号,说明aapt2本身没问题;要是报错,根据错误提示针对性修复。
2. 降级Build Tools版本
26.0.2版本的aapt2在Windows环境下确实有不少兼容性小问题,降级到26.0.1试试:
- 打开Android SDK Manager,找到
Build Tools 26.0.1安装; - 修改项目根目录的
config.xml,添加或修改配置:<preference name="android-buildToolsVersion" value="26.0.1" /> - 或者直接重新添加平台:
cordova platform rm android cordova platform add android@7.0.0 --buildTools=26.0.1
3. 给Gradle加内存、调超时
有时候Gradle分配的内存不够,也会拖垮aapt2进程:
- 找到项目里的
platforms/android/gradle.properties,修改或添加:org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.daemon=true org.gradle.parallel=true - 再打开
platforms/android/build.gradle,在android节点里加aapt超时配置:android { aaptOptions { timeout = 120 // 超时时间改成120秒 } }
4. 清缓存,从头再来
缓存损坏是这类玄学问题的常见元凶:
- 先清Cordova的缓存:
cordova clean - 再删Gradle的本地缓存,直接删掉
C:\Users\Ivar\.gradle\caches里的所有文件,然后重新跑构建命令。
5. 升级Node.js版本
你的Node是v6.11.0,虽然理论上和Cordova 7.0.0兼容,但旧版本Node和Cordova的交互偶尔会有隐性问题,试试升级到v8.x的LTS版本(比如v8.17.0),再重新构建。
按这个顺序试下来,应该能搞定超时问题。
内容的提问来源于stack exchange,提问作者Ivafo
相关产品推荐
相关产品推荐

