Skip to content

When to Use Build Clean Project in Android Studio: The Ultimate Troubleshooting Guide

My Android Studio debugging was working perfectly yesterday. Today, nothing happens when I hit the debug button. No error messages, no logs, just… silence.

I tried everything:

  • Restarted Android Studio
  • Restarted my computer
  • Reverted all my Git commits from the past two days
  • Asked AI for debugging suggestions
  • Even disabled my C++ libraries thinking they might be the culprit

Nothing worked.

Then I stumbled across a Reddit thread where someone had the exact same issue after a power outage and Windows update. Their debugging had stopped working, they’d tried the same dead-end solutions I had, and finally someone suggested: Build → Clean Project.

It worked immediately.

What Clean Project Actually Does

Before diving into when to use it, here’s what Clean Project actually does:

Build artifacts that get deleted:
├── app/build/
│ ├── intermediates/
│ ├── outputs/
│ ├── tmp/
│ └── generated/
├── .gradle/
│ ├── 8.x/
│ └── configuration-cache/
└── build/

Clean Project removes all compiled intermediate files and forces Gradle to rebuild everything from source. This is different from:

  • Build: Only compiles changed files (incremental build)
  • Rebuild: Cleans then builds (same as Clean + Build)
  • Invalidate Caches/Restart: Clears IDE caches, not build artifacts

The key insight from the Reddit discussion was revealing: “Clean is not something that comes into mind with Android Studio because it’s so hidden.” Coming from Visual Studio or C++ backgrounds, clean/rebuild is a standard workflow. In Android Studio, it’s buried in the Build menu, making it easy to forget.

When to Use Clean Project: The Complete Checklist

1. After System Interruptions

This is the most common scenario. If any of these happen, your build artifacts might be in an inconsistent state:

  • Power outage or sudden shutdown
  • Windows or macOS update interrupted development
  • Disk space ran out during a build
  • Virtual machine or container crashed
  • Network issues during dependency downloads

The Reddit case study hit all three: power outage, Windows update, and infrastructure problems. The debugging session had been interrupted, leaving Gradle’s build cache in a corrupted state.

2. When Build Errors Appear Without Code Changes

You haven’t touched your code, but suddenly:

Execution failed for task ':app:compileDebugKotlin'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

Or resource files that haven’t changed are suddenly reported as missing. These are classic signs of corrupted build caches.

3. Gradle Cache Issues

Gradle maintains several cache layers that can become stale:

.gradle/
├── 8.x/ # Daemon cache
├── build-cache-1/ # Build output cache
└── configuration-cache/ # Build configuration cache

Symptoms include:

  • Changes to build.gradle not taking effect
  • Dependencies not updating even after version changes
  • C++ integration failures after NDK version changes

4. Resource File Not Updating

You changed an image, updated a string resource, or modified a layout. But when you run the app, the old version still appears. Clean Project forces all resource processing to run again.

5. After Gradle Configuration Changes

These changes require a full rebuild:

  • Adding or removing buildTypes
  • Changing productFlavors
  • Modifying dependencies block
  • Updating Gradle plugin versions
  • Changing compileSdkVersion or targetSdkVersion

6. After Reverting Source Control Changes

Here’s the trap: you revert problematic Git commits, but the build artifacts from those commits remain. Clean Project is essential after any git revert or git reset that involved build configuration changes.

7. Switching Project Configurations

When switching between:

  • Debug and release builds repeatedly
  • Different product flavors
  • Different machines or CI environments

Different configurations may have left incompatible artifacts in the build directory.

8. Plugin Installation/Removal

After installing or removing Android Studio plugins, especially those that interact with the build process:

  • Kotlin plugins
  • C++/NDK plugins
  • Dagger/Hilt plugins
  • Testing plugins

How to Use Clean Project

The Simple Way (Android Studio UI)

Build → Clean Project

Wait for completion, then:

Build → Rebuild Project

Run → Run ‘app’

The Command Line Way

Terminal window
# Navigate to project root
cd /path/to/your/project
# Clean all artifacts
./gradlew clean
# Or clean and build specific module
./gradlew :app:clean
./gradlew :app:assembleDebug

The Nuclear Option (Complete Cache Clear)

When Clean Project alone doesn’t work:

Terminal window
# Stop all Gradle daemons
./gradlew --stop
# Remove Gradle caches
rm -rf .gradle/
# Remove local build cache
rm -rf ~/.gradle/caches/build-cache-1/
# Clean and rebuild
./gradlew clean build

Gradle Properties for Better Build Behavior

# In gradle.properties
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=true

These settings enable build caching (which you’ll occasionally need to clean), parallel execution, and daemon reuse. They make builds faster overall, but they also make cache corruption more likely.

Pro Tips for Working with Clean Project

Make It Part of Your Workflow

Before pushing changes to CI/CD:

Terminal window
./gradlew clean build

This ensures your local environment matches what will happen in the CI pipeline. If it passes locally with a clean build, it’s more likely to pass in CI.

When Clean Project Doesn’t Solve It

If you’ve tried Clean Project and still have issues:

  1. Check the Gradle Daemon: Sometimes the daemon process itself is stuck. Use ./gradlew --stop to kill it.

  2. Invalidate IDE Caches: File → Invalidate Caches / Restart. This is different from Clean Project—it clears Android Studio’s internal caches.

  3. Check for File Locks: On Windows, another process might be holding a file lock. Close other apps, restart your machine.

  4. Delete the .idea folder: Only as a last resort. This removes your IDE configuration and run configurations. Backup first.

Automating Clean Builds in CI/CD

# GitHub Actions example
- name: Clean build
run: ./gradlew clean build --no-build-cache

Always use clean builds in CI/CD pipelines. Build caching in CI is dangerous because it can hide issues that will only appear on developer machines.

What Clean Project Does NOT Do

  • It does NOT delete your source code
  • It does NOT affect your Git history
  • It does NOT modify your configuration files
  • It does NOT remove installed dependencies from your local Maven repository
  • It does NOT clear Android Studio’s internal caches

Clean Project only affects the build/ directories and .gradle/ folders within your project. Your actual source code remains untouched.

Terminal window
# Check Gradle version
./gradlew --version
# List all tasks
./gradlew tasks --all
# Dry run to see what would execute
./gradlew clean --dry-run
# Build with detailed logging
./gradlew clean build --info
# Build with debug logging (very verbose)
./gradlew clean build --debug

Summary: Quick Reference

Use Build Clean Project when:

  • System interrupted (power outage, update, crash)
  • Build errors appear without code changes
  • Gradle cache is corrupted
  • Resources not updating
  • After gradle configuration changes
  • After reverting Git commits
  • Switching project configurations
  • Installing/removing plugins

The command: Build → Clean Project or ./gradlew clean

Follow with: Build → Rebuild Project or ./gradlew build

Remember: Clean Project is safe. It only removes build artifacts, not your code.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments