升级Android Studio3.5与Gradle3.5.0后AAPT2构建报错求助
先给你拆解下问题的核心:从你贴的错误栈里能直接看到关键原因——AAPT2 3.5.0版本已经不再支持32位Linux系统。虽然你的系统显示是x86_64(64位),但大概率是你的旧版Linux Mint(基于Ubuntu 14.04)缺少64位程序运行必需的32位兼容库,或者系统版本太老不在AAPT2的支持列表里,导致工具误判了环境。
下面给你几个适配新版本的可行方案,按推荐优先级排序:
方案1:安装32位兼容依赖库(最推荐,成本最低)
AAPT2的64位版本需要依赖一些32位的系统库才能正常运行,在终端执行以下命令安装:
sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6
安装完成后,回到Android Studio里先同步Gradle(File > Sync Project with Gradle Files),再清理项目(Build > Clean Project),最后重新构建应该就能解决问题了。
方案2:升级系统到兼容的发行版(长期根治)
Android官方对AAPT2 3.5.0的要求是64位Linux发行版至少为Ubuntu 16.04及以上,你当前用的是基于Ubuntu 14.04的Mint版本,确实太老了。如果有条件的话,把系统升级到基于Ubuntu 16.04或更高版本的Linux Mint分支,能从根本上解决这类兼容性问题,后续升级Android工具也不会再踩类似的坑。
方案3:手动替换兼容的AAPT2版本(折中方案)
如果暂时不想升级系统,可以试试降级AAPT2到兼容旧版Linux的版本(比如3.4.0),步骤如下:
- 找到你Android SDK的
build-tools目录,比如一般路径是~/Android/Sdk/build-tools/,进入你当前项目使用的build-tools版本文件夹; - 下载对应Linux版本的AAPT2 3.4.0二进制文件;
- 替换文件夹里的
aapt2文件,然后给它加上执行权限:
chmod +x /path/to/your/android-sdk/build-tools/your-target-version/aapt2
替换完成后同步Gradle再构建项目即可。
方案4:临时禁用AAPT2(不推荐,应急用)
这个是临时的 workaround,因为后续Android Gradle插件会逐步移除对旧版AAPT的支持,但如果急需构建项目,可以在项目根目录的gradle.properties里添加一行配置:
android.enableAapt2=false
这样会强制回退到旧版AAPT,但不建议长期使用,避免后续升级出现更多问题。
内容的提问来源于stack exchange,提问作者Yoko999

