簡體   English   中英

Android支持庫,編譯SDK版本和最低SDK版本

[英]Android support libraries, compile SDK version and minimum SDK version

關於支持庫的使用,我有一些一般性問題,但是我找不到很好的資源來回答。

內容:

我正在使用的應用程序的最低SDK目標設置為9。我正在使用通過gradle導入的支持庫v4和v7

compile 'com.android.support:support-v4:22.2.1'
compile 'com.android.support:appcompat-v7:22.2.1'

我還聲明了要編譯的sdk版本以及使用的最低SDK版本

minSdkVersion 9
compileSdkVersion 22

現在,它將編譯並構建一個無錯誤的apk。 但是,當我將compileSDKVersion更改為19時,會出現很多錯誤,例如

錯誤:(2)檢索項目的父項時出錯:未找到與給定名稱'android:TextAppearance.Material.Inverse'相匹配的資源。

告訴我,我正在使用的SDK不包含兼容性庫使用的某些資源,我應該改用以前的兼容性庫。

問題:

  • 我可以同時使用v4和v7編譯的最低SDK版本是什么(或者v4和v7都支持的最低SDK版本是什么)? 有沒有辦法查看Android支持存儲庫中的所有可用版本?

  • 將最低SDK版本設置為9並將compileSDKVersion設置為22並使用支持庫目標API 22提供的元素是否有風險? 我的意思是:由於缺少類/資源,我可能會獲得運行時異常嗎?

  • 有沒有一種方法可以配置Gradle以顯示某些潛在的不兼容性? 我知道有時使用高於最低API的API中存在的方法時會出現編譯錯誤。 但這是否也可以推廣到xml(例如主題或資源)?

  • 我知道當(支持)庫引用已編譯的SDK中不存在的資源時出現編譯錯誤。 有沒有辦法為最小的SDK也獲得類似的警告/錯誤?

抱歉,如果問題太含糊,請告訴我是否需要一定的精度! 如果您知道有趣的資源可能會回答一部分問題,請不要在此處分享;)

Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Inverse'.

這是因為支持庫v22需要API 22。
您無法使用API​​ 19進行編譯。

我可以同時使用v4和v7編譯的最低SDK版本是什么(或者v4和v7都支持的最低SDK版本是什么)

通常minSdk是庫的名稱。 v4是api4,appcompat是api7。

有沒有辦法查看Android支持存儲庫中的所有可用版本?

例如,您可以在打開aar文件的文件夾androidsdk\\extras\\android\\m2repository\\com\\android\\support檢查它。

將最低SDK版本設置為9並將compileSDKVersion設置為22並使用支持庫目標API 22提供的元素是否有風險? 我的意思是:由於缺少類/資源,我可能會獲得運行時異常嗎?

如果您使用的是支持庫v22,則為否。

我知道當(支持)庫引用已編譯的SDK中不存在的資源時出現編譯錯誤。 有沒有辦法為最小的SDK也獲得類似的警告/錯誤?

不,根據我的經驗。
有一條一般規則。

庫主版本號是最小編譯sdk版本。

它的意思是:

support libraries v21.x.x -> requires API 21 
support libraries v22.x.x -> requires API 22 
support libraries v23.x.x -> requires API 23 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM