Understanding the project structure helps you find and organize your app files easily. It makes building and running your app smoother.
Project structure (app, gradle, manifests) in Android Kotlin
ProjectRoot/
app/
src/
main/
java/ (Kotlin code here)
res/ (UI resources here)
AndroidManifest.xml
build.gradle (Module-level)
build.gradle (Project-level)
settings.gradle
app/ folder contains your app code and resources.
build.gradle files control how your app is built and what libraries it uses.
app/src/main/AndroidManifest.xml
app/build.gradle
build.gradle (Project-level)
This shows a simple project structure with a MainActivity Kotlin file inside the app module. The AndroidManifest.xml and build.gradle files are in their usual places.
The MainActivity displays a simple text on the screen.
/* Project structure overview: ProjectRoot/ app/ src/ main/ java/com/example/myapp/MainActivity.kt res/layout/activity_main.xml AndroidManifest.xml build.gradle build.gradle settings.gradle */ // MainActivity.kt package com.example.myapp import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Text("Hello from MainActivity") } } }
Always keep your AndroidManifest.xml inside app/src/main/.
Use the module-level build.gradle to add libraries your app needs.
The project-level build.gradle manages overall project settings and plugin versions.
The app folder holds your app code and resources.
AndroidManifest.xml describes your app to Android.
build.gradle files control building and dependencies.
Practice
app folder in an Android project?Solution
Step 1: Understand the app folder role
Theappfolder is where you put your app's code and resources like images and layouts.Step 2: Differentiate from other folders
Build files likebuild.gradleare outside or insideappbut serve different purposes; system files are not inapp.Final Answer:
It contains the app's source code and resources. -> Option BQuick Check:
App folder = source code and resources [OK]
- Confusing build files with app folder contents
- Thinking system files are inside app folder
- Mixing emulator settings with project structure
Solution
Step 1: Identify the manifest file role
TheAndroidManifest.xmlfile describes app components like activities and permissions.Step 2: Compare with other files
build.gradlehandles build settings,settings.gradlemanages modules, andproguard-rules.prois for code shrinking rules.Final Answer:
AndroidManifest.xml -> Option DQuick Check:
Manifest = app components and permissions [OK]
- Confusing build.gradle with manifest
- Thinking settings.gradle declares permissions
- Mixing ProGuard rules with app declarations
build.gradle inside the app folder, what will happen if you add a new dependency incorrectly?
dependencies {
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.7.0'
}Solution
Step 1: Understand dependency syntax
Dependencies must be declared with correct syntax likeimplementation 'group:name:version'. Any syntax error causes build failure.Step 2: Consequence of incorrect dependency
If a dependency line is malformed, Gradle will fail to build and show an error, not ignore it or allow runtime crashes.Final Answer:
The build will fail due to a syntax error in dependencies. -> Option CQuick Check:
Incorrect dependency syntax = build failure [OK]
- Assuming build ignores syntax errors
- Thinking runtime crashes happen from build errors
- Confusing dependency syntax with code syntax
AndroidManifest.xml but the app crashes on launch. What is a likely cause?Solution
Step 1: Check manifest XML structure
All permission tags must be inside the root<manifest>element. Placing them outside causes XML errors and app crashes.Step 2: Understand build.gradle and emulator roles
Permissions are declared only in manifest, not build.gradle. Emulators support permissions normally.Final Answer:
The permission tag is outside the <manifest> root element. -> Option AQuick Check:
Permissions must be inside manifest root [OK]
- Adding permissions in build.gradle
- Ignoring XML structure errors
- Blaming emulator for permission issues
Solution
Step 1: Create module folder and build file
Each module needs its own folder andbuild.gradleto define its build settings.Step 2: Update settings.gradle
Thesettings.gradlefile must include the new module so Gradle knows to build it.Final Answer:
Create a new folder for the module, add a build.gradle for it, and update settings.gradle to include it. -> Option AQuick Check:
New module = folder + build.gradle + settings.gradle update [OK]
- Only updating AndroidManifest.xml
- Adding module inside app folder incorrectly
- Forgetting to update settings.gradle
Ready to prove it?
Pass the test and this pattern moves unknown
