不幸的是我必須支持Android 2.3,但我想使用第三方UI微件,它有min-sdk 14(Android 4.0)。Gradle依賴不同的api水平
有沒有辦法用min-sdk 14包含依賴關係?
在代碼中,我會檢查Build.SDK_INT
以確定是否在min SDK 14或後備UI小部件中使用ui小部件。
不幸的是我必須支持Android 2.3,但我想使用第三方UI微件,它有min-sdk 14(Android 4.0)。Gradle依賴不同的api水平
有沒有辦法用min-sdk 14包含依賴關係?
在代碼中,我會檢查Build.SDK_INT
以確定是否在min SDK 14或後備UI小部件中使用ui小部件。
這是不可能的......如果你有一個依賴它在你編譯。在你的apk裏面。您可以選擇是否要使用if(SDK_INT)這個第三方庫,但該庫將被編譯並存放在您的應用程序中。
不幸的是,由於您必須包含依賴項,它將始終編譯到您的項目中。
您可能會將您的項目分解爲單獨的項目。如果你創建了一個像BaseApp
和IceCreamSandwichApp
的東西,你可以爲每一個設置不同的minSdkVersions
以及一組不同的依賴關係。
所以,你必須在你的應用模塊:
your-app/BaseApp
和
your-app/IceCreamSandwichApp
和你gradle這個文件將是這個樣子:
您的應用程序內/設置。 gradle
include ':BaseApp', ':GingerbreadApp'
您的應用程序內/ BaseApp /的build.gradle
android {
buildToolsVersion '22.0.1'
defaultConfig {
minSdkVersion 9
compileSdkVersion 21
targetSdkVersion 21
}
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
}
您的應用程序內/ IceCreamSandwichApp /的build.gradle
android {
buildToolsVersion '22.0.1'
defaultConfig {
minSdkVersion 14
compileSdkVersion 21
targetSdkVersion 21
}
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(":BaseApp")
compile 'the.third.party:lib:here:1.0.0'
}
}