AAPT2报不存在的语法错误:Jetpack Compose构建失败求助
解决Jetpack Compose构建中AAPT2守护进程启动失败的问题
问题核心
在Termux环境下构建Jetpack Compose应用时,出现AAPT2启动报错:
AAPT2 aapt2-7.3.1-8691043-linux Daemon #0: Unexpected error output: /data/data/com.termux/files/home/.gradle/caches/transforms-3/2aa1849659ea6e682659b94654585970/transformed/aapt2-7.3.1-8691043-linux/aapt2[1]: syntax error: unexpected '('
已确认项目XML文件均有效,但processDebugResources任务仍失败,伴随AAPT2守护进程启动失败及StackOverflowError。
原因分析
Termux运行在ARM/aarch64架构的Android设备上,而默认下载的AAPT2是针对x86_64桌面Linux的二进制文件,架构不兼容导致执行时出现语法错误。
解决方案
清理Gradle缓存
删除已下载的不兼容AAPT2缓存文件,执行命令:rm -rf ~/.gradle/caches/transforms-3/2aa1849659ea6e682659b94654585970/若需彻底清理所有缓存(会重新下载全部依赖),执行:
rm -rf ~/.gradle/caches/指定ARM架构兼容的AAPT2版本
在项目根目录的gradle.properties文件中添加以下配置,强制使用支持aarch64架构的AAPT2包:android.aapt2FromMavenOverride=com.android.tools.build:aapt2:7.3.1-8691043-aarch64匹配AGP与Gradle版本
确保Android Gradle插件(AGP)版本与Gradle版本兼容,AGP 7.3.x对应的Gradle版本需为7.4或更高,可在项目根目录的gradle/wrapper/gradle-wrapper.properties中调整Gradle版本:distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip尝试降级AGP版本
若上述方法无效,可尝试将AGP版本降级到7.2.x(更稳定的ARM兼容版本),修改项目根目录的build.gradle(或build.gradle.kts)中的AGP版本:buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.2.2' } }
内容的提问来源于stack exchange,提问作者leap123
相关产品推荐
相关产品推荐

