Challenge 1: Which build.gradle File Gets a New Dependency — Solution Walkthrough The answer: The module-level build.gradle file — app/build.gradle, not the project-level one. Why, per this chapter's own explanation: Individual library dependencies belong inside a specific module's own dependencies block, since a dependency is something one module needs in order to compile and run — in a typical single-module app, that's the app module itself. The project-level build.gradle (and settings.gradle) instead configures overall build settings and lists which modules exist in the project at all; it has no dependencies block of its own for a specific library to go into. What would go wrong with the other choice: Adding a dependency line to the project-level file wouldn't make that library available to the app module's own code at all — Gradle wouldn't know which specific module the dependency is meant for, since the project-level file's job is describing the project as a whole, not declaring what any one module needs to compile. WHY THIS WORKS AS AN ANSWER ------------------------------ This exercise is a direct, practical application of this chapter's own project-level vs. module-level distinction to the single most common real task a developer performs in this file — adding a dependency — correctly identifying which scope that specific kind of change belongs to.