昨天添加Android兼容包,碰到了不少問題,在這裏記錄一下,讓後面的路好走。html
如何選擇兼容包,
請參考Android Support Library Features(二) java
1、下載Support Library
方法1:右擊項目→選擇Android Tools→Add Support Library…android
方法2:瀏覽器
經過SDK Manager獲取Support Library:app
1.打開Android SDK Managerui
2.在SDK Manager窗口,滾動到Package List的末尾,找到Extra文件夾,若是須要的話打開文件夾顯示它的內容。this
3.選擇Android Support Library項目。spa
注意:若是你使用的是Android Studio開發,選擇並安裝Android Support Repository項目而不是Android Support Library項目。.net
4.點擊Install packages按鈕。3d
下載完成後,SDK會將Support Library文件安裝到你已經存在的Android SDK目錄下。庫文件位於SDK的以下子目錄:<sdk>/extras/android/support/目錄。
2、添加V4兼容包(v4 appconpat)
- 確保你已經利用SDK Manager下載了Android Support Library 。
- 在你的項目的根目錄下建立一個libs/目錄。
- 從你的Android SDK安裝目錄(例如,<sdk>/extras/android/support/v4/android-support-v4.jar)下拷貝JAR文件到你項目的libs/目錄下。
- 右鍵點擊JAR文件並選擇Build Path > Add to Build Path。
3、添加V7兼容包(v7 appconpat)
建立一個基於support library代碼的 library project:
- 確保你已經利用 SDK Manager下載了Android Support Library。
- 建立一個library項目而且確保須要的JAR文件包含在了項目的build path中:
- 選擇File > Import。
- 選擇Existing Android Code Into Workspace 並點擊Next。
- 瀏覽SDK安裝目錄,並進入Support Library目錄下。例如,若是你要添加appcompat項目,瀏覽 <sdk>/extras/android/support/v7/appcompat/。
- 點擊Finish引入項目。對於v7 appcompat項目,你將看到一個標題爲android-support-v7-appcompat的新項目。
- 在新項目中,展開libs/ 文件夾,右鍵點擊每個.jar文件,並選擇Build Path > Add to Build Path。例如,當建立v7 appcompat項目時,同時將android-support-v4.jar和android-support-v7-appcompat.jar文件添加到build path中。
- 右鍵點擊library項目文件夾並選擇Build Path > Configure Build Path。
- 在Order and Export選項中,在剛剛添加到build path中的.jar文件上打勾,這時這些文件成爲項目可用的了並依賴於這個library項目。例如,appcompat項目要求同時導出android-support-v4.jar和android-support-v7-appcompat.jar文件。
- 去掉Android Dependencies上的對勾。
- 點擊OK完成設置
如今你擁有了一個包含你選擇的Support Library的library項目,你能夠在一個或多個應用項目中利用這個Support Library。
如今咱們要嚮應用工程(須要加入Support Library的工程)添加庫:
- 在項目瀏覽器中右鍵單擊你的項目,選擇Properties。
- 在左邊的分類面板中,選擇Android。
- 在Library面板中,點擊Add。
- 選擇庫項目,而後點擊OK。例如,appcompat項目會在列表中顯示爲android-support-v7-appcompat。
- 在properties窗口中,點擊OK。
遇到的問題:
一、java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$attr
這個問題,是由於app在運行時沒有找到對應的V7兼容包致使的,請參考文中 添加V7兼容包(v7 appconpat)
二、java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
完成上文提到的1,3步驟後,修改android:theme爲@style/Theme.AppCompat
參考連接
Android Support Library(一)
Android Support Library Features(二)
Android Support Library Setup(三)
Support Library