为什么在Android Studio项目中有两个build.gradle文件?

示例

<PROJECT_ROOT>\app\build.gradle是特定于应用程序模块的

<PROJECT_ROOT>\build.gradle是“顶级构建文件”,您可以在其中添加所有子项目/模块共有的配置选项。

如果您在项目中使用另一个模块,则作为本地库,您将拥有另一个build.gradle文件:<PROJECT_ROOT>\module\build.gradle

在顶级文件中,您可以将公共属性指定为buildscript块或一些公共属性。

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
       classpath 'com.android.tools.build:gradle:2.2.0'
       classpath 'com.google.gms:google-services:3.0.0'
    }
}

ext {
    compileSdkVersion = 23
    buildToolsVersion = "23.0.1"
}

在中,app\build.gradle您仅定义模块的属性:

apply plugin: 'com.android.application'


android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
}

dependencies {
    //.....
}