You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决Android Studio中执行assembleDebug时出现的AAPT2错误?

解决Android assembleDebug时mergeDebugResources失败的问题

首先来看你遇到的错误详情:

当我执行assembleDebug任务运行项目时,出现了以下错误:

:app:mergeDebugResources C:\Users\Deepan\Downloads\googleads-mobile-android-examples- master\googleads-mobile-android-examples-master\java\admob\NativeAdvancedExample\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-sw600dp-v13\values-sw600dp-v13.xml: error: file not found.
Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
:app:mergeDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

这个问题核心是资源合并阶段找不到指定的values文件,大概率是缓存损坏、资源缺失或者AAPT2兼容性问题,试试下面几个方案:

  • 检查资源完整性
    先去错误提示的路径确认values-sw600dp-v13.xml是否存在:
    C:\Users\Deepan\Downloads\googleads-mobile-android-examples- master\googleads-mobile-android-examples-master\java\admob\NativeAdvancedExample\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-sw600dp-v13\
    如果这个中间文件缺失,再去项目的res/values-sw600dp-v13目录下看有没有对应文件。要是项目里也没有,说明你下载的Google Ads示例包不完整,重新下载完整的压缩包解压后再试。

  • 清理构建缓存
    缓存损坏是这类问题的高发原因,你可以:

    1. 在Android Studio里点击Build > Clean Project,完成后再点击Build > Rebuild Project
    2. 或者用命令行执行:
      ./gradlew clean assembleDebug
      

    也可以手动删除项目里的app/build和根目录下的build文件夹,然后重新构建,彻底清除损坏的中间文件。

  • 调整AAPT2配置(备选方案)
    如果是AAPT2的兼容性问题,可以尝试降级到旧版AAPT:
    在项目根目录的gradle.properties文件中添加一行:

    android.enableAapt2=false
    

    注意:官方推荐使用AAPT2,所以这个方法优先在前面的方案都无效时再用。

  • 检查资源文件语法
    有时候项目里其他资源文件(比如XML布局、values文件)的语法错误,会导致AAPT2处理失败,间接出现“文件找不到”的错误提示。你可以检查所有XML文件是否有标签未闭合、属性拼写错误等问题。

内容的提问来源于stack exchange,提问作者Deepankumar

火山引擎 最新活动