构建APK时触发Java.utils.cuncurrent.ExecutionException错误,求解决方案
在手机Linux Deploy的Ubuntu环境下Android Studio构建APK的AAPT2错误排查方案
你在手机上通过Linux Deploy运行Ubuntu系统,用OpenJDK替代Oracle JDK安装了Android Studio,Gradle项目构建能成功,但生成APK时碰到了这个棘手的错误:
Java.utils.cuncurrent.ExecutionException: java.lang.RuntimeException:no server to serve request. Check log for details
而且Gradle控制台显示这是编号340422075的AAPT错误,关联到/root/android/sdk/build-tools/27.0.3/aapt2相关日志,但日志量太大完全无从下手?别慌,给你几个针对性的排查方向:
- 先抓AAPT2的核心错误日志:不用啃全量日志,直接过滤关键信息就行。在终端里对日志文件执行
grep -i "error\|exception" /path/to/your/gradle/log,或者在Android Studio的Gradle Console里搜索aapt2,重点看带ERROR或Failed的行,这些才是触发问题的根源。 - 检查AAPT2的可执行权限:手机Ubuntu环境里权限容易出问题,先确认
aapt2有执行权限:
改完权限后重新构建试试。chmod +x /root/android/sdk/build-tools/27.0.3/aapt2 - 验证AAPT2本身是否正常:直接在终端里运行AAPT2的测试命令:
如果运行报错,说明aapt2损坏或者依赖缺失,去Android SDK Manager里卸载27.0.3版本的build-tools,重新下载安装。/root/android/sdk/build-tools/27.0.3/aapt2 compile --help - 确认OpenJDK版本兼容性:虽然Gradle构建成功,但AAPT2对JDK版本有隐性要求,Android Studio 3.x到4.x推荐用OpenJDK 8,高版本Studio可以用OpenJDK 11。用
java -version查看当前版本,要是不对就切换到兼容的版本。 - 尝试禁用AAPT2增量构建:特殊环境下增量构建容易出问题,在项目根目录的
gradle.properties里加一行:
注意:高版本的Android Gradle Plugin可能已经移除了这个配置,如果构建时提示无效就跳过这步。android.enableAapt2=false - 排查项目资源文件:AAPT2的错误大多和资源有关——比如XML语法错误、图片损坏、资源命名不符合规范(比如用了大写字母或特殊字符)。你可以先创建一个全新的空Android项目,用同样的环境构建,如果空项目能生成APK,那肯定是你当前项目的res目录里有问题,逐一排查资源文件就行。
内容的提问来源于stack exchange,提问作者Ebin Chandy
相关产品推荐
相关产品推荐

