在所有库

时间:2016-03-06 08:06:19

标签: android gradle android-gradle android-support-library build.gradle

我的应用程序中有2个模块,我想修改它们以使用AppCompat Widgets,我必须用它来扩展它们。问题是我不想为每个人添加appcompat依赖,所以我怎么可能将依赖添加到模块和我的应用程序。如果我确实添加

compile 'com.android.support:appcompat-v7:23.1.1'

到每个模块,它会影响应用程序的大小吗?

1 个答案:

答案 0 :(得分:6)

使用

compile 'com.android.support:appcompat-v7:23.1.1'

在每个模块并不意味着将其添加两次或更多次。

Gradle处理它只为你添加一次库。

使用多模块项目,您可以将支持库依赖项集中在gradle中。

一种非常好的方法是分离gradle构建文件,定义如下内容:

root
  --gradleScript
  ----dependencies.gradle
  --module1
  ----build.gradle
  --module2
  ----build.gradle
  --build.gradle

gradleScript/dependecies.gradle

ext {
    //Version
    supportLibrary = '23.2.0'

    //Support Libraries dependencies
    supportDependencies = [
            design           :         "com.android.support:design:${supportLibrary}",
            recyclerView     :         "com.android.support:recyclerview-v7:${supportLibrary}",
            cardView         :         "com.android.support:cardview-v7:${supportLibrary}",
            appCompat        :         "com.android.support:appcompat-v7:${supportLibrary}",
            supportAnnotation:         "com.android.support:support-annotations:${supportLibrary}",
    ]
}

在顶级文件build.gradle中:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
    }
}

// Load dependencies
apply from: 'gradleScript/dependencies.gradle'

module1/build.gradle

// Module build file

dependencies {
    //......
    compile supportDependencies.appCompat
    compile supportDependencies.design
}