编译或运行时可能会出现错误: Error:Error retrieving parent for item: No resource found that matches the given name

本文汇总了解决Android开发中Theme.AppCompat.Light找不到资源的问题及深入分析。提供了实用的解决方案链接,并介绍了如何在Eclipse中正确添加Android兼容包。

这个问题我在刚开始写“HelloWorld”时就遇到,以为是API版本太高,下载了常用的API 19、17……一系列的,后来还是有问题。就上网查了很多,遇到几篇不错的文章,记录下来,方便以后查看。

  • No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案  http://www.360doc.com/content/15/0316/15/9200790_455576135.shtml
  • Android关于Theme.AppCompat相关问题的深入分析
  • http://www.jianshu.com/p/6ad7864e005e
  • 在Eclipse添加Android兼容包(v4、v7 appcompat)
  • http://www.360doc.com/content/15/0316/15/9200790_455576135.shtm
### Android styles.xml 文件中资源引用错误的解决方案 在 Android 项目中,如果遇到 `styles.xml` 文件中的资源引用错误,例如 `Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Light.NoActionBar'`,这通常与主题样式资源未正确引用有关。 #### 1. **确认使用的 Android 版本与主题兼容性** Android 的主题资源(如 `Theme.Material.Light.NoActionBar`)是在特定的 API 级别中引入的。Material Design 主题首次出现在 Android 5.0 (API 21) 中,因此如果你的项目需要支持更早版本的 Android,可能需要使用兼容库(如 AppCompat)来替代原生主题。 如果你的项目最低支持版本低于 API 21,则应避免直接使用 `android:Theme.Material.Light.NoActionBar`,而改用兼容库中的主题,例如 `Theme.AppCompat.Light.NoActionBar`[^5]。 #### 2. **使用 AppCompat 主题** 确保你的项目已正确导入并使用 `AppCompatActivity` 和 `AppCompat` 主题。在 `styles.xml` 文件中,将父主题替换为 `Theme.AppCompat.Light.NoActionBar`,如下所示: ```xml <resources> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> </style> </resources> ``` 此外,确保在 `build.gradle` 文件中添加了 AppCompat 库的依赖项: ```gradle implementation 'com.android.support:appcompat-v7:28.0.0' ``` #### 3. **检查 Gradle 插件和 SDK 版本** 确保你使用的 Android Gradle 插件版本与 SDK 版本兼容。如果你希望使用 Material Design 主题,必须使用支持 API 21 更高版本的 SDK,并在 `build.gradle` 文件中设置 `compileSdkVersion` 为 21 更高: ```gradle android { compileSdkVersion 21 ... } ``` #### 4. **处理 values-v21 和 values-v23 目录下的样式错误** 如果项目中存在 `values-v21` `values-v23` 目录下的样式错误,例如 `No resource found that matches the given name 'android:Widget.Material.Button.Colored'`,则应确保这些目录中的样式仅用于支持相应 API 级别的设备。确保这些目录中的样式引用了正确的资源名称,并且没有拼写错误[^3]。 #### 5. **回退到基础主题** 如果你的项目不需要使用 Material Design AppCompat 主题,可以回退到更基础的主题,例如 `android:Theme.Light`。修改 `styles.xml` 文件如下: ```xml <resources> <style name="AppBaseTheme" parent="android:Theme.Light"> </style> <style name="AppTheme" parent="AppBaseTheme"> </style> </resources> ``` 这种方法适用于不需要兼容 Material Design 的旧版本 Android 设备[^4]。 #### 6. **清理项目并重新构建** 有,构建缓存可能导致资源引用错误。尝试清理项目并重新构建: 1. 在 Android Studio 中选择 **Build > Clean Project**。 2. 然后选择 **Build > Rebuild Project**。 这可以解决因缓存导致的资源引用问题。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值