'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
- 著做權歸做者全部,轉載請聯繫做者得到受權,並標註「簡書做者」。