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