在Eclipse新增Android相容包(v4/v7appcompat)

dj0379發表於2015-10-20

昨天新增Android相容包,碰到了很多問題,在這裡記錄一下,讓後面的路好走。

如何選擇相容包,

請參考Android Support Library Features(二)

一、下載Support Library

方法1:右擊專案→選擇Android Tools→Add Support Library…

image

方法2:

通過SDK Manager獲取Support Library:

1.開啟Android SDK Manager

2.在SDK Manager視窗,滾動到Package List的末尾,找到Extra資料夾,如果需要的話開啟資料夾顯示它的內容。

3.選擇Android Support Library專案。

注意:如果你使用的是Android Studio開發,選擇並安裝Android Support Repository專案而不是Android Support Library專案。

4.點選Install packages按鈕。

下載完成後,SDK會將Support Library檔案安裝到你已經存在的Android SDK目錄下。庫檔案位於SDK的如下子目錄:<sdk>/extras/android/support/目錄。

 

二、新增V4相容包(v4 appconpat)

  1. 確保你已經利用SDK Manager下載了Android Support Library 。
  2. 在你的專案的根目錄下建立一個libs/目錄。
  3. 從你的Android SDK安裝目錄(例如,<sdk>/extras/android/support/v4/android-support-v4.jar)下拷貝JAR檔案到你專案的libs/目錄下。
  4. 右鍵點選JAR檔案並選擇Build Path > Add to Build Path。

三、新增V7相容包(v7 appconpat)

建立一個基於support library程式碼的 library project

  1. 確保你已經利用 SDK Manager下載了Android Support Library
  2. 建立一個library專案並且確保需要的JAR檔案包含在了專案的build path中:
  1. 選擇File > Import
  2. 選擇Existing Android Code Into Workspace 並點選Next
  3. 瀏覽SDK安裝目錄,並進入Support Library目錄下。例如,如果你要新增appcompat專案,瀏覽 <sdk>/extras/android/support/v7/appcompat/。
  4. 點選Finish引入專案。對於v7 appcompat專案,你將看到一個標題為android-support-v7-appcompat的新專案。
image
  1. 在新專案中,展開libs/ 資料夾,右鍵點選每一個.jar檔案,並選擇Build Path > Add to Build Path。例如,當建立v7 appcompat專案時,同時將android-support-v4.jar和android-support-v7-appcompat.jar檔案新增到build path中。
  2. 右鍵點選library專案資料夾並選擇Build Path > Configure Build Path
  3. 在Order and Export選項中,在剛剛新增到build path中的.jar檔案上打勾,這時這些檔案成為專案可用的了並依賴於這個library專案。例如,appcompat專案要求同時匯出android-support-v4.jar和android-support-v7-appcompat.jar檔案。
  4. 去掉Android Dependencies上的對勾。
  5. 點選OK完成設定

image

 

 

現在你擁有了一個包含你選擇的Support Library的library專案,你可以在一個或多個應用專案中利用這個Support Library。

 

現在我們要嚮應用工程(需要加入Support Library的工程)新增庫:

  1. 在專案瀏覽器中右鍵單擊你的專案,選擇Properties
  2. 在左邊的分類皮膚中,選擇Android
  3. 在Library皮膚中,點選Add
  4. 選擇庫專案,然後點選OK。例如,appcompat專案會在列表中顯示為android-support-v7-appcompat
  5. 在properties視窗中,點選OK

image

 

遇到的問題:

1、java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$attr

這個問題,是因為app在執行時沒有找到對應的V7相容包導致的,請參考文中  新增V7相容包(v7 appconpat)

2、java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

完成上文提到的1,3步驟後,修改android:theme為@style/Theme.AppCompat

image

 參考連結

Android Support Library(一)

Android Support Library Features(二)

Android Support Library Setup(三)

Support Library

相關文章