【问题标题】:Gradle dependencies for different api levels不同 api 级别的 Gradle 依赖项
【发布时间】:2014-11-06 18:54:29
【问题描述】:

不幸的是,我必须支持 Android 2.3,但我想使用具有 min-sdk 14 (Android 4.0) 的第三方 ui 小部件。

有没有办法在 min-sdk 14 中包含依赖项?

在代码中,我会检查 Build.SDK_INT 以确定是使用带有 min SDK 14 的 ui 小部件还是备用 UI 小部件。

【问题讨论】:

    标签: android android-studio android-gradle-plugin


    【解决方案1】:

    这是不可能的...如果您有依赖项,它就在您的编译中。在你的apk里面。您可以选择是否要将此第三方库与 if(SDK_INT) 一起使用,但该库将被编译并在您的应用程序中。

    【讨论】:

      【解决方案2】:

      不幸的是,由于您必须包含一个依赖项,它总是会编译到您的项目中。

      您可以将项目拆分为单独的项目。如果您创建了 BaseAppIceCreamSandwichApp 之类的东西,您可以为每个设置不同的 minSdkVersions 以及一组不同的依赖项。

      所以你必须在你的应用程序中添加模块:

      your-app/BaseApp
      

      your-app/IceCreamSandwichApp
      

      你的 gradle 文件看起来像这样:

      your-app/settings.gradle

      include ':BaseApp', ':GingerbreadApp'
      

      your-app/BaseApp/build.gradle

      android {
          buildToolsVersion '22.0.1'
      
          defaultConfig {
              minSdkVersion 9
              compileSdkVersion 21
              targetSdkVersion 21
          }
      
      ...
      
          dependencies {
              compile fileTree(dir: 'libs', include: ['*.jar'])
          }
      
      }
      

      your-app/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'
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-30
        • 1970-01-01
        • 2016-11-05
        • 2021-01-11
        • 1970-01-01
        • 2021-08-13
        相关资源
        最近更新 更多