v7包報錯問題

2021-07-16 21:33:26 字數 1927 閱讀 8620

android下v4    v7   v21等包是android系統的擴充套件支援包,就想windows的系統補丁乙個道理。

android的擴充套件包主要是用來相容低版本的,比如android3.0以後出現了actionbar,如果要使用actionbar,那麼手機系統必須在3.0以上才能使用,這樣將會導致很多使用者不能安裝apk從而損失使用者;(有人會想,為什麼不直接將新出來的東西全部打包到sdk中而是提供各種支援包?我是這樣理解的,比如:如果將原生actionbar直接打包到低版本的sdk包中,而低版本手機裡面卻沒有相關的**,這樣即使在開發的時候能在相容低版本,但執行在低版本手機上時,應用去系統中找actionbar,發現沒有就會報錯,所以這種做法是不能實現的)

然而,當我使用v7包的時候卻不是那麼順暢,在這裡總結一下使用的步驟、遇到的錯誤以及解決的辦法:

1、匯入v7包:

2、接下來會發現v7工程報了錯誤:

res目錄下有很多values目錄,這是android為了相容和適配不同版本系統而細分了很多個values目錄,

values-v21就是android5.0系統載入的資源目錄(根據values後面的字尾,可區分不同版本、不同解析度、不同語言等從而相容不同版本、適配不同螢幕大小和不同國家語言),有人會嘗試把這些「多餘」的values包刪除掉,就不報錯了,但是發現刪除這個後又有了新的錯誤

剛剛上面說到了values-v21是android5.0載入資源的目錄,但是我發現我的編譯版本是4.0

解決辦法:只要將編譯版本提高到5.0就行

(右擊-->properties--->project build target--->勾選5.0———>clean庫工程)

3、我們的工程應用庫工程後,還是報錯,同樣的道理,因為我們的工程將v7庫工程引用進來後,我麼你的資源目錄裡面就包括了v7的資源目錄,裡面照樣也會有values-v21等,我已也要將我們的工程編譯版本提高到5.0,然後clean

4、完成上述操作後,發現工程沒有錯誤了,但是一執行,又報錯:

它說在support-v7包的actionbar中有多個dex檔案,但遇到這種錯誤,一般都是重複引入jar包造成的;

再看看工程的build path:

果然發現引入了兩個v4和v7包,這是為什麼?

原來在我們自己的工程libs下有乙個v4包和乙個v7包,而v7庫工程裡面也有,我的工程又引用了v7庫工程,

這樣將v7庫工程下的v4和v7包也引入了,所以導致工程中重複了:

找到了原因,問題就迎刃而解了,開啟工程的build path,remove掉我們工程中的兩個支援包就行

(使用v7庫工程中引入的支援包):

執行專案,大功告成

Android 匯入v7包常見錯誤

android下v4 v7 v21等包是android系統的擴充套件支援包,就想windows的系統補丁乙個道理。android的擴充套件包主要是用來相容低版本的,比如android3.0以後出現了actionbar,如果要使用actionbar,那麼手機系統必須在3.0以上才能使用,這樣將會導致很...

eclipse中使用 design 包和 v7 包

由於最近專案中需要新增 的店鋪功能。然而由於產品部分特別的需求。需要用到 design包中包含的新布局。我們這裡需要找到自己的目錄下拷貝自己的資源。在匯入 v7 包 和 design 包之前 需要確定兩個檔案和 原來專案中的v4包 是否版本一致。如果不一致也是不行的。最後我們讓 我們的專案分別依賴 ...

android studio 匯入v7標紅

import android.support.v7.widget.v7標紅,cannot not resolve symbol 原因是我使用最新版的android studio,建立專案時,預設使用的是最新的包 在新的android studio使用的是androidx,這個包整合了support包...