添加CardView依赖后遇AAPT2错误及布局资源缺失问题求助
我之前也碰到过类似的坑,给你一步步排查解决:
先理清问题根源
你提到有content_main和content_main(v14)两个XML文件,大概率是自动修复选项误修改了app_bar_main.xml里的布局引用路径,或者是布局文件的命名不符合Android资源规范,导致AAPT工具找不到对应的资源。
具体解决步骤
检查app_bar_main.xml的布局引用
打开app_bar_main.xml,找到引用content_main的代码行,确认是标准格式:<include layout="@layout/content_main"/>注意不要出现
@layout/content_main(v14)这种错误引用——layout-v14是系统自动识别的资源文件夹,里面的布局文件名应该还是content_main.xml,不需要在引用里加(v14)后缀。修正布局文件命名(如果需要)
核对你的资源文件夹结构:res/layout/下必须存在content_main.xmlres/layout-v14/下的布局文件也应该是content_main.xml(不是content_main(v14).xml)
Android会根据系统版本自动加载对应文件夹下的布局,文件名保持一致才能被正确识别。
清理编译缓存并重建项目
缓存错乱是这类资源错误的常见诱因,执行以下操作:- 点击Android Studio顶部菜单栏的
Build->Clean Project - 接着点击
Build->Rebuild Project
等待编译完成后再查看错误是否消失。
- 点击Android Studio顶部菜单栏的
检查CardView依赖的兼容性
如果你的项目是基于AndroidX的,不要再使用旧的support库依赖,换成AndroidX版本的CardView:implementation 'androidx.cardview:cardview:1.0.0'旧的support库(
com.android.support:cardview-v7:26.1.0)和AndroidX项目可能存在兼容性冲突,会触发连锁错误。通过本地历史恢复误操作的文件
如果你是点击修复选项后才出现的问题,可以用Android Studio的本地历史恢复到之前的正确版本:- 右键点击出问题的
app_bar_main.xml文件 - 选择
Local History->Show History - 在弹出的历史记录列表里找到误操作前的版本,点击
Restore完成恢复
- 右键点击出问题的
附你提供的错误信息参考
C:\Users\AndroidStudioProjects\ShoppingApp\app\src\main\res\layout\app_bar_main.xml
Error:error: resource layout/content_main (aka com.example.shoppingapp:layout/content_main) not found.
Error:resource layout/content_main (aka com.example.shoppingapp:layout/content_main) not found.
Error:failed linking file resources.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'. Failed to execute aapt
内容的提问来源于stack exchange,提问作者Sking8

