'No resource found that matches the given name '@style/Theme.AppCompat.Light'
如下情形会致使:html
<!-- values目录下,styles.xml文件里面style --> <resources> <style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style> <style name="AppTheme" parent="AppBaseTheme"></style> </resources>
<!-- AndroidManifest.xml文件里面 --> android:theme="@style/AppTheme"
项目支持的最小SDK小于API 14(即Android4.0)android
<!-- AndroidManifest.xml文件里面,minSdkVersion<14 --> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="23" />
项目没有导入android-support-v7-appcompat兼容包。设计模式
The Android Support Library package is a set of code libraries that provide backward-compatible versions of Android framework APIs as well as features that are only available through the library APIs.app
Android的SDK版本不少,新的SDK版本包含了不少新的特性,为此Google官方提供Android Support Library package来保证高版本SDK的向下兼容。经过使用此包,可让拥有最新SDK特性的应用运行在API lever 4(即Android 1.6) 及更高版本的设备之上。ide
v7 Support Libraries
此包是针对API level 7(即Android 2.1)及以上版本而设计的,可是v7是要依赖v4这个包的,v7支持了Action Bar以及一些Theme的兼容。工具
Note: v7 appcompat library
v7 appcompat library 是包含在 v7 Support Libraries里面的一个包,正是此包增长了Action Bar 用户界面的设计模式,并加入了对material design 的支持,是咱们使用最多的一个兼容包。ui
v13 Support Library
此包是针对API level 13(即Android 3.2)及更高版本设计的,通常咱们都不经常使用,平板开发中能用到,这里就不过多介绍了。spa
此时的解决方法有以下几种:设计
方法1:code
既然没有找到Theme.AppCompat.Light
主题,那么我就不使用此主题。
此时将项目values,values-v11,values-v14目录下的styles.xml文件里面的style都改成:
<resources> <style name="AppBaseTheme" parent="android:Theme.Light"></style> <style name="AppTheme" parent="AppBaseTheme"></style> </resources>
方法2:
若是没有找到Theme.AppCompat.Light
主题,而咱们又想要使用最新的主题效果,还有种方法就是将AndroidManifest.xml文件里面,minSdkVersion
改为14,好比
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
此时再将项目values,values-v11,values-v14目录下的styles.xml文件里面style都改成
<resources> <style name="AppBaseTheme" parent="android:Theme.Holo.Light"></style> <style name="AppTheme" parent="AppBaseTheme"></style> </resources>
方法3:
固然以上都不是最好的方法,只是提供一种思路。最好的方法就是导入android-support-v7-appcompat库。下面具体介绍:
1.经过Android SDK Manager下载最新的Android Support Library。
(博主插一句:若是没找到,可能须要勾选下面的“Obsolete”)
下载完成以后,能够在如下目录找到AppCompat library
android-sdk/extras/android/support/v7/appcompat
2.将此目录下的项目导入到Eclipse中
3.右键点击咱们的Android项目,选择Properties,左侧选择Android,在下方Library框里点击Add,最后选择appcompat_v7,肯定。此时问题就解决了。
但在以上方法3步骤2导入appcompat_v7到Eclipse以后,有可能还会出现错误提示,好比
appcompat_v7\res\values-v23\styles_base.xml:20: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.
出现此问题的缘由是appcompat_v7已经更新到了最新版本而且高于编译环境的SDK版本,此时在Android SDK Manager将SDK及编译工具更新到最高版本
升级完成以后右键点击appcompat_v7项目,选择Properties,选择Project Build Target 为最新版本,这样就OK了。
(博主暂未遇到,防患未然)
- 文/小池laucherish(简书做者)
- 原文连接:http://www.jianshu.com/p/6ad7864e005e
- 著做权归做者全部,转载请联系做者得到受权,并标注“简书做者”。