December 5th, 2025
The Android Build That Refused to Build Today was supposed to be the day I finally got the Android build working. Six hours later, I’m writing this with zero successful builds and a very clear understanding of why. Let me walk you through the entire disaster.6:00 PM — Starting Fresh
I was already frustrated with the old environment. Nothing was working properly, so I decided to nuke everything and start clean. Deleted folders. Reset native code. Reinstalled dependencies. The classic “maybe if I start fresh it’ll magically work” approach. Spoiler: it did not magically work.6:10 PM — Setting Up WSL
Opened Ubuntu on WSL. First task: get my Android phone detected.- Installed ADB
- Enabled USB debugging on phone
- Added USB rules
- Restarted the adb server
6:40 PM — Preparing to Build
Navigated to the project folder:6:50 PM — Gradle Download Starts
Gradle started downloading:7:15 PM — Break
Took a break. Came back later with the intention of finishing everything tonight. Famous last words.8:00 PM — Build Attempt 1
Restarted the command:8:40 PM — Stuck at 83%
The build hit 83% and just… stopped. Slowly crawled to 90%. Terminal kept showing:9:20 PM — No Movement
Still stuck:/mnt/c on WSL means Windows filesystem. Windows filesystem doesn’t properly support hard links. Every hard link operation was falling back to slow copies.
9:45 PM — Restarting the Attempt
Killed the stuck process. Restarted Ubuntu. Tried everything again:- Verified
adb devices - Reconnected phone
- Checked debugging was on
10:00 PM — Build Attempt 2
Ran it again:10:30 PM — BIOS Accident
While switching between screens, I accidentally entered BIOS. Panicked for a second. Exited safely. Continued. Just another thing to add to the chaos of this evening.11:00 PM — Stuck Again
Build reached the exact same state:11:30 PM — Realization
I started questioning everything. Every step felt like it was working against me. The setup inside/mnt/c was never going to allow this build to complete. The filesystem limitations were fundamental, not fixable with workarounds.
Six hours in, and I was no closer to a working build than when I started.
12:00 AM — The Final Failure
Gradle finally gave up:Root Cause
Here’s what actually went wrong:- Project was inside
/mnt/con WSL - Android NDK requires hard links
- Hard links don’t work properly on
/mnt/c(Windows filesystem) - WSL converts hard links into slow fallback copies
- Native builds take forever and freeze around 90%
- Gradle daemon eventually times out and crashes
12:30 AM — End of Day
After more than six hours of trying, deleting, reinstalling, debugging, reconnecting devices, analyzing logs, and sitting through multiple freezes — the build did not complete. But now I finally know exactly why. Tomorrow’s plan: move the project to the native Linux filesystem inside WSL, not/mnt/c. That should fix everything.
Today was painful. But at least it wasn’t wasted. I learned something.
That’s the whole point of building in public. Even the failures get documented.
See you tomorrow.