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

<PROJECT_ROOT>\app\build.gradle 特定于 app 模块

<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 {
    //.....
}