當咱們開發android應用須要用到android-support-v7-appcompat.jar這個庫時(比方說要在2.2版本上使用actionbar和fragment),在項目中導入v4和v7這兩個庫以後,新手每每會遇到一些問題。在這裏,總結一下可能遇到的問題,以及解決的方法。html
須要兩個庫:android-support-v4.jar,android-support-v7-appcompat.jarandroid
舒適提示:這兩個庫最好版本同樣,不然可能會有一些其餘問題產生。app
這兩個庫能夠從sdk下的sdk\extras\android\support中獲取eclipse
首先是在項目中導入這兩個庫工具
能夠經過在項目根目錄建立一個libs文件,而後把這兩個庫拷貝到裏面,而後eclipse刷新一下這個項目,eclipse會智能添加這兩個庫測試
添加完以後,可能遇到的問題:spa
一類問題: values\......No resource foundxml
比方說:htm
res\values\styles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.ip
對於values這個地方產生的no resource found問題,說明是沒有v7下的資源。
解決方法:
添加資源庫,針對上面的例子,AppCompat這個是v7裏的,因此缺乏的是v7的資源。從sdk去獲取,路徑是sdk\extras\android\support\v7\appcompat,把這個library經過eclipse導入(import)。而後以前的項目添加該lib,再clean下。這樣上面的問題能夠搞定。
二類問題:values-v11,values-v21,values-v17等等下的No resource found
比方說:
appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.
appcompat\res\values-v11\themes_base.xml:178: error: Error: No resource found that matches the given name: attr 'android:windowActionBar'.
appcompat\res\values-v14\themes_base.xml:27: error: Error: No resource found that matches the given name: attr 'android:actionModePasteDrawable'.
對於在values-v11這類針對不一樣android target加載的values下找不到資源的問題,緣由仍是同樣,找不到這個target下的資源。
解決方法:
很簡單,把project.properties裏的target=android-8或者可能稍微高點,改到target=android-21或者更高(前提是sdk已經下載了該target的庫),而後再clean下項目。這樣這類問題也就解決了,固然你在Manifest裏不要忘記加上uses-sdk,來容許最低版本。
4
最後附上測試寫的actionbar tab加上fragment,在Android2.3.4三星手機上的實現結果