當前位置:
首頁 > 最新 > 突破第三方庫的 minSdkVersion 限制

突破第三方庫的 minSdkVersion 限制

版權聲明:本公眾號發布的所有文章,未特殊署名,均屬於原創,版權歸本公眾號所有。

一、前言

在 Android 提供的 Api 中,很多 Api 都是有 Api Level 的限制的,這也限制了我們的 App 允許運行的設備的 Api Level ,通常這種限制,我們可以使用 minSdkVersion 來做限定。關於 minSdkVersion 的相關內容,可以參考之前的文章:《XxxSdkVersion 傻傻分不清楚》而當我們使用第三方庫的時候,也會碰到因為對方庫限定了 minSdkVersion 而導致無法被集成進來,這種情況會在編譯期間拋出異常,導致打包失敗。遇見這樣的問題,只能考慮提升主項目的 minSdkVersion ,放棄低版本用戶,或者放棄使用該庫。這兩種方案二選一。那麼本片文章,教你如何突破它,允許忽略第三方庫的 minSdkVersion 限制,成功打包。

二、復現和解決問題

2.1 復現錯誤既然是解決問題,先來看看錯誤提示。

從提示上,可以很清楚的看出來是那個庫引發的問題,也給出了解決辦法,使用 uses-sdk 標籤標記它。2.2 解決問題既然已經給出了提示,那麼按照提示解決即可。在 AndroidManifest.xml 中,Application 標籤下,增加一個 uses-sdk 的標籤,重新為 leanback 指定 minSdkVersion 為 16。

如此設置之後,就可以正常打包了。

三、思考

雖然這樣可以解決引用高 minSdkVersion 庫的打包問題,但是實際上並不推薦如此操作。同時前面給出的例子並不是一個好例子,因為 Leanback 中,需要使用這個 Api,但是它是在 Api 17 才添加的,這種問題,是明顯無法繞過的問題,因為哪怕打包成功了,安裝運行之後一樣會崩潰報錯。但是具體情況具體分析。有一些情況,實際上我們是可以繞過的。最典型的就是一些 UI 效果,如果低版本不支持,直接使用 Build.VERSION.SDK_INT 判斷一下當前運行的設備 SDK 版本,然後區分處理即可。這樣實際上在低版本的設備上運行,那些高版本才添加的 Api,也不會被調用到,自然也不會出錯。無非就是在低版本上,表現的形式不一樣而已,例如少個動畫,但是並不影響使用。所以總結來說,這樣user-sdk的使用場景:能清楚知道是什麼 Api 被版本限制了,又能清楚的知道如何規避它,讓它在低版本上不會被調用到。這樣的情況下,我們是可以放心的使用 uses-sdk 來避免無法打包的問題的,畢竟低版本的設備,現在市場佔用率,並不低。iOS 專屬打賞

點贊或者分享吧~

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 承香墨影 的精彩文章:

從布局和實現的角度,聊聊 Notification
工作中,AS和Git更配哦!

TAG:承香墨影 |