為什麼 Android Studio 專案中有兩個 build.gradle 檔案

<PROJECT_ROOT>\app\build.gradle 特定於 app 模組。

<PROJECT_ROOT>\build.gradle 是一個頂級構建檔案,你可以在其中新增所有子專案/模組共有的配置選項。

如果你在專案中使用另一個模組,作為本地庫,你將擁有另一個 build.gradle 檔案:<PROJECT_ROOT>\module\build.gradle

頂級構建檔案

位於根專案目錄中的頂級 build.gradle 檔案定義了適用於專案中所有模組的構建配置。預設情況下,頂級構建檔案使用 buildscript {} block 來定義專案中所有模組通用的 Gradle 儲存庫和依賴項。以下程式碼示例描述了在建立新專案後你可以在頂級 build.gradle 中找到的預設設定和 DSL 元素。

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"
}

模組級構建檔案

位於每個 <project>/<module>/目錄中的模組級 build.gradle 檔案允許你為其所在的特定模組配置構建設定。配置這些構建設定允許你提供自定義打包選項,例如其他構建型別和產品風格,並覆蓋 main/ app 清單或頂級 build.gradle 檔案中的設定。

apply plugin: 'com.android.application'

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

dependencies {
    //.....
}