Gradle之強制依賴某個第三方庫
前言
在之前的一個專案中,compileSdkVersion和targetSdkVersion都是使用的24,都是使用最新的,緊跟潮流嘛,一直是相安無事。直到有一天接入一個第三方的SDK的時候,問題暴露了:第三方SDK僅僅只支援最大22的編譯,23及以上他本身的SDK就會直接崩潰。沒辦法,只能降級專案中的編譯版本來相容他了。這一降,才知道不是那麼好辦的。
1.建立專案
如上圖所示,建立了一個專案,compileSdkVersion、targetSdkVersion都是22,並且引用了一個appcompat-v7:22.2.1包。
2.提升引用appcompat-v7版本
看下圖,將v7包提升到了23.2.1,就直接爆出了一個錯誤。
這個錯誤,如果單單只是在我們自己的專案中出現,還是很好解決的,要麼降低v7的版本和sdk一致,要麼就提升sdk版本和v7保持一致。但是,有得時候所引用的v7是在我們引用的開源庫中引用的,我們自己的sdk不能提升,也不能修改開源庫中的引用版本。
3.其他開源庫appcompat-v7高版本
為了方便,我就自己建立了一個library並引用了,並且在library中引用了appcompat-v7:22.2.1,並且sdk都提升到了24.如下圖:
編譯一下app,爆出了和前面一樣的錯誤。直接引用了最高版本的v7:24.1.0
是不是很絕望?自己的的SDK又不能提升,別人的引用又不能修改。Gradle提供了一個強制依賴的方法:
resolutionStrategy.force
4.resolutionStrategy.force
使用方法簡單,只需要將以下指令碼放在Android節點下即可
configurations.all {
resolutionStrategy.force "com.android.support:appcompat-v7:22.2.1"
}
如圖所示
總結
半年了,終於又開始寫部落格了。現在Android行情已經不是那麼好了。
來來掃下碼,關注一下吧,或者微信搜尋AndroidRookie
相關文章
- Gradle排除依賴模組的某個類Gradle
- rimraf 命令強制刪除依賴庫檔案
- 關於 Gradle 依賴庫的幾個東西Gradle
- 清除gradle依賴jarGradleJAR
- Gradle for Android系列之四 依賴包管理GradleAndroid
- vue-cli3.0打包時如何忽略某個第三方依賴包Vue
- idea gradle 專案依賴IdeaGradle
- Maven依賴機制Maven
- 【資料庫之函式依賴】資料庫函式
- Android Gradle 依賴配置:implementation & apiAndroidGradleAPI
- Gradle入門系列(3):依賴管理Gradle
- 一文徹底搞清 Gradle 依賴Gradle
- 使用Gradle檢視Android專案中庫的依賴關係GradleAndroid
- Gradle根據引數配置不同的依賴Gradle
- Gradle for Android 第三篇( 依賴管理 )GradleAndroid
- ASP.NET的快取依賴機制-SQL快取依賴篇ASP.NET快取SQL
- 強制轉換檢視某個欄位為某個型別的sql型別SQL
- 又一個強大的PHP5.3依賴注入容器PHP依賴注入
- 一個.NET內建依賴注入的小型強化版依賴注入
- Flutter中如何強制某個頁面橫屏Flutter
- 使用IDEA模組之間依賴找不到依賴類Idea
- 不要依賴Mock庫 - ErwinMock
- 將你的Gradle依賴轉換為函式Gradle函式
- build.gradle中正確地匯入RecyclerView依賴UIGradleView
- 通過Gradle來下載依賴的jar包GradleJAR
- .Net DI(Dependency Injection)依賴注入機制依賴注入
- Gradle 使用技巧(四) - 如何定位和解決依賴衝突Gradle
- Android -Gradle依賴匯入及相關知識AndroidGradle
- Gradle的Task(2)任務間的依賴關係Gradle
- .NET之預設依賴注入依賴注入
- PHP之依賴管理composerPHP
- Gradle構建springboot專案的倉庫處理(包括外掛倉庫以及依賴倉庫)GradleSpring Boot
- 2.3 Spring的核心機制:依賴注入Spring依賴注入
- 從檢視看Oracle物件依賴機制Oracle物件
- Gradle For Android (一) 基礎定義與依賴管理篇GradleAndroid
- 像 npm 一樣在 Andriod 專案中引入 Gradle 依賴NPMGradle
- 用Gradle 構建你的android程式-依賴管理篇GradleAndroid
- 如何在Android Gradle中新增原生so檔案依賴AndroidGradle