Android Studio新建项目values文件报错,求助修复方法
嘿,我看到你在新建Android项目时遇到了一堆values文件的报错,这些错误主要是依赖库不匹配、缓存异常或者资源缺失导致的,我来给你几个针对性的解决办法:
你遇到的报错信息:
/home/casimiro/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/b98e66e2aac1160aaf1abece79f4239c/res/values/values.xml Error:(49, 5) error: style attribute 'attr/colorPrimary (aka com.casimiro.pap:attr/colorPrimary)' not found. Error:(49, 5) error: style attribute 'attr/colorPrimaryDark (aka com.casimiro.pap:attr/colorPrimaryDark)' not found. Error:(49, 5) error: style attribute 'attr/colorAccent (aka com.casimiro.pap:attr/colorAccent)' not found. /home/casimiro/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/7b14486d9f20631159bf075d741601e4/res/values-v14/values-v14.xml Error:(8, 5) error: resource dimen/abc_text_size_button_material (aka com.casimiro.pap:dimen/abc_text_size_button_material) not found. /home/casimiro/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/7b14486d9f20631159bf075d741601e4/res/values-v21/values-v21.xml Error:(49, 5) error: resource string/abc_font_family_title_material (aka com.casimiro.pap:string/abc_font_family_title_material) not found. Error:(49, 5) error: resource dimen/abc_text_size_menu_header_material (aka com.casimiro.pap:dimen/abc_text_size_menu_header_material) not found. /home/casimiro/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/7b14486d9f20631159bf075d741601e4/res/values-v11/values-v11.xml Error:(67, 5) error: resource style/Widget.AppCompat.ButtonBar.AlertDialog (aka com.casimiro.pap:style/Widget.AppCompat.ButtonBar.AlertDialog) not found. Error:(67, 5) error: resource style/Widget.AppCompat.Button.Borderless (aka com.casimiro.pap:style/Widget.AppCompat.Button.Borderless) not found. Error:(67, 5) error: resource bool/abc_config_closeDialogWhenTouchOutside (aka com.casimiro.pap:bool/abc_config_closeDialogWhenTouchOutside) not found. Error:(72, 5) error: resource style/Widget.AppCompat.ButtonBar.AlertDialog (aka com.casimiro.pap:style/Widget.AppCompat.ButtonBar.AlertDialog) not found. Error:(72, 5) error: resource style/Widget.AppCompat.Button.Borderless (aka com.casimiro.pap:style/Widget.AppCompat.Button.Borderless) not found.
你的style.xml代码:
<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
具体解决步骤:
确保依赖库版本完全一致
你使用的是support-compat-26.1.0和appcompat-v7-26.1.0,首先打开build.gradle(Module: app)文件,检查所有support相关的依赖版本是否统一,不能出现有的用26.1.0、有的用其他版本的情况。另外,26版本的support库需要对应API 26的SDK平台,你可以通过Tools -> SDK Manager确认已经下载了API 26的SDK和对应版本的Build Tools。如果条件允许,建议升级到更稳定的高版本(比如28.0.0,这是AndroidX之前的最后一个稳定support版本),或者直接迁移到AndroidX(不过需要调整部分配置)。清理Gradle缓存并重新同步项目
这些报错很多来自Gradle缓存的损坏aar文件,你可以手动删除缓存目录:/home/casimiro/.gradle/caches/transforms-1/,然后回到Android Studio,点击菜单栏的File -> Sync Project with Gradle Files,让Gradle重新下载并构建依赖。另外也可以尝试File -> Invalidate Caches / Restart,清理IDE的缓存,有时候IDE缓存异常也会导致这类奇怪的资源找不到问题。确认颜色资源文件存在
你的style.xml里引用了@color/colorPrimary等三个颜色值,要检查res/values/colors.xml文件是否存在,并且里面是否定义了这三个颜色。如果没有的话,手动添加:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> </resources>检查Android Studio与Gradle插件的兼容性
老版本的Android Studio可能和高版本的Gradle插件不兼容,反之亦然。打开build.gradle(Project: xxx)文件,查看Gradle插件版本,比如:dependencies { classpath 'com.android.tools.build:gradle:3.0.1' // 这个版本对应support 26.x }确保插件版本和你的support库版本匹配,比如Gradle插件3.0.x对应support 26.x,3.2.x对应28.x。如果版本不匹配,要么升级插件,要么降级support库到对应版本。
内容的提问来源于stack exchange,提问作者Casimiro

