Android項目使用support v7時遇到的各種問題
摘要?當我們開發(fā)android應用需要用到android-support-v7-appcompat.jar這個庫時(比方說要在2.2版本上使用actionbar和fragment),在項目中導入v4和v7這兩個庫之后,新手往往會遇到一些問題。在這里,總結一下可能遇到的問題,以及解決的方法。
目錄[-]
工具/原料 方法/步驟
當我們開發(fā)android應用需要用到android-support-v7-appcompat.jar這個庫時(比方說要在2.2版本上使用actionbar和fragment),在項目中導入v4和v7這兩個庫之后,新手往往會遇到一些問題。在這里,總結一下可能遇到的問題,以及解決的方法。
工具/原料
需要兩個庫:android-support-v4.jar,android-support-v7-appcompat.jar
溫馨提示:這兩個庫最好版本一樣,否則可能會有一些其他問題產(chǎn)生。
這兩個庫可以從sdk下的sdkextrasandroidsupport中獲取
方法/步驟
首先是在項目中導入這兩個庫
可以通過在項目根目錄創(chuàng)建一個libs文件,然后把這兩個庫拷貝到里面,然后eclipse刷新一下這個項目,eclipse會智能添加這兩個庫
添加完之后,可能遇到的問題:
一類問題: ?values......No resource found
比方說:
resvaluesstyles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.
對于values這個地方產(chǎn)生的no resource found問題,說明是沒有v7下的資源。
解決方法:
添加資源庫,針對上面的例子,AppCompat這個是v7里的,所以缺少的是v7的資源。從sdk去獲取,路徑是sdkextrasandroidsupportv7appcompat,把這個library通過eclipse導入(import)。然后之前的項目添加該lib,再clean下。這樣上面的問題可以搞定。
二類問題:values-v11,values-v21,values-v17等等下的No resource found
比方說:
appcompatresvalues-v21styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.
appcompatresvalues-v11themes_base.xml:178: error: Error: No resource found that matches the given name: attr 'android:windowActionBar'.
appcompatresvalues-v14themes_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已經(jīng)下載了該target的庫),然后再clean下項目。這樣這類問題也就解決了,當然你在Manifest里不要忘記加上uses-sdk,來允許最低版本。
4
最后附上測試寫的actionbar tab加上fragment,在Android2.3.4三星手機上的實現(xiàn)結果