That was the trap. A silent, cruel quirk of the Android ecosystem. A library deep in his dependency tree—some legacy ad mediation SDK—was compiled against 33.0.0. Not 33.0.1. Not 34. The exact checksum of 33.0.0. Any other version broke the AAPT2 binary compatibility.
He couldn’t use Android Studio’s GUI—the download kept failing at 47% due to his flaky hotel Wi-Fi. He needed the raw file. android sdk build-tools 33.0.0 download
./gradlew clean assembleDebug
Leo pieced it together:
He copied the link, fired up wget , and watched the terminal: That was the trap