2014-11-06 76 views
5

不幸的是我必須支持Android 2.3,但我想使用第三方UI微件,它有min-sdk 14(Android 4.0)。Gradle依賴不同的api水平

有沒有辦法用min-sdk 14包含依賴關係?

在代碼中,我會檢查Build.SDK_INT以確定是否在min SDK 14或後備UI小部件中使用ui小部件。

回答

0

這是不可能的......如果你有一個依賴它在你編譯。在你的apk裏面。您可以選擇是否要使用if(SDK_INT)這個第三方庫,但該庫將被編譯並存放在您的應用程序中。

0

不幸的是,由於您必須包含依賴項,它將始終編譯到您的項目中。

您可能會將您的項目分解爲單獨的項目。如果你創建了一個像BaseAppIceCreamSandwichApp的東西,你可以爲每一個設置不同的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' 
    } 

}