Linux Mint环境编译Flutter Geolocator项目出现AAPT2报错怎么解决
安卓经纬度输出应用编译报错修复方案
问题背景
项目为输出经纬度的简单安卓应用,配置如下:
- 操作系统:Linux Mint 19.3
- Android Gradle插件版本:
classpath 'com.android.tools.build:gradle:4.1.3' - 编译SDK版本:
compileSdkVersion 31
构建时抛出如下错误:
FAILURE: Build failed with an exception. What went wrong: Execution failed for task ':app:processDebugResources'. Could not resolve all files for configuration ':app:debugRuntimeClasspath'. Failed to transform play-services-base-17.0.0.aar (com.google.android.gms:play-services-base:17.0.0) to match attributes {artifactType=android-compiled-dependencies-resources, org.gradle.status=release}. > Execution failed for AarResourcesCompilerTransform: /home/luis/.gradle/caches/transforms-2/files-2.1/bb3cc3ced1388fcd9c0c925717b75148/jetified-play-services-base-17.0.0. > AAPT2 aapt2-4.1.3-6503028-linux Daemon #6: Unexpected error during compile '/home/luis/.gradle/caches/transforms-2/files-2.1/bb3cc3ced1388fcd9c0c925717b75148/jetified-play-services-base-17.0.0/res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_normal_background.9.png', attempting to stop daemon.
错误核心为AAPT2工具编译play-services-base 17.0.0包内的.9.png资源时失败。
修复方案
- 方案1:清理损坏的Gradle缓存
先执行项目清理命令:./gradlew clean,再删除报错中提到的缓存目录/home/luis/.gradle/caches/transforms-2/files-2.1/bb3cc3ced1388fcd9c0c925717b75148/,重新发起构建,让Gradle重新下载解压依赖包,排除缓存文件损坏的问题。 - 方案2:升级play-services-base依赖版本
17.0.0版本的play-services-base与compileSdkVersion 31存在兼容性问题,将依赖版本升级至18.0.1及以上即可,该版本已适配高版本SDK的资源编译规则。 - 方案3:调整编译SDK版本
若暂时无法升级依赖,可将compileSdkVersion暂时降至30,旧版本play-services-base依赖可在SDK 30环境下正常编译。 - 方案4:升级Android Gradle插件
若以上方案均无效,可将AGP版本升级至4.2.2及以上,配套的AAPT2工具修复了部分.9.png资源编译的偶发错误。
内容的提问来源于stack exchange,提问作者Luis Gama
相关产品推荐
相关产品推荐

