Published November 9, 2026
Android Studio Rabbit 3 Canary 3 Pushes AGP 9.6.0-alpha03 Into the Canary Channel
Android Studio Rabbit 3 Canary 3 arrived on November 5, and it is the third canary in a line that started in late October. The build ships alongside Android Gradle Plugin 9.6.0-alpha03, which is the part that matters for anyone building Flutter applications for Android, since the plugin is what compiles, dexes, shrinks, and packages the host module around your Dart code.
Google published the same day a patch for Rabbit 2 on the stable channel. The pair is a useful snapshot of the two tracks: one channel tightening the toolchain everyone is expected to use, the other delivering a maintenance drop with no feature content.
The Fixes Worth Reading
The canary release notes list nine resolved issues across the plugin and the IDE. Two of them concern R8, the shrinking and optimisation step that runs on every release build, and both are about visibility rather than behaviour.
The first, issue 567487269, makes the output of analyzeReleaseR8Config print a link to the generated report. That task exists so you can inspect the keep rules and why certain classes survived shrinking. Until now, locating the artifact meant reading the task output carefully and reconstructing a path. A clickable link is a small quality of life improvement in the one diagnostic step that most often explains an unexpected release-only crash.
The second R8 issue, 475431060, is a build failure: the R8 job died when the project used the com.android.kotlin.multiplatform.library plugin. Multiplatform library modules are increasingly common in shared codebases, and a shrinking step that aborts on them blocks release builds entirely rather than degrading a report. That is now resolved.
Issue 491158080 touches Prefab, the mechanism Android uses to expose C and C++ libraries to other modules as prebuilt packages. Prefab was failing to include prebuilt shared libraries inside an AAR. Flutter plugins that wrap native SDKs frequently ship exactly this arrangement, so an AAR missing its .so payload is the kind of defect that surfaces as a runtime linker error on a device rather than a compile failure on a workstation.
Compose Preview and the Gradle Editor
Two Compose Preview bugs were closed. The more interesting one, 577972199, is about previews that disappeared when the annotation resolving them was only available after the file had already been scanned once. A preview that does not render because the IDE cached an earlier resolution state is a quiet failure: no error, just an empty panel. The other, 348520440, enables Pseudolocales inside Compose previews, which lets a layout be inspected under the long and short pseudo-locales without switching device configuration.
The Gradle files editor produced a false positive warning that a dependency named null was declared multiple times whenever a libs.versions.toml bundle was in play. That is issue 526305384, and it is the sort of warning developers learn to ignore, which is exactly why it is worth fixing. Issue 242856048 covers a related gap in import and sync, where the agp-missing-dimension-for-sync-only diagnostic was not surfaced when it was the only item in the flavor dimensions list.
- Lint analysis no longer breaks after sources are moved in AGP 9.x projects with a populated Gradle cache (issue 566069554)
- The Ladybug era UI slowdown complaint tracked as issue 376975539 is closed
- IDE performance degradation during Gradle builds in large projects, issue 396148600, is also marked fixed
- The Open project in New Window prompt no longer appears twice when a project lacks a .idea folder (issue 361777156)
The performance items deserve a caveat. Both the Ladybug comparison and the large project slowdown are old reports, and closing an issue does not always mean the underlying architecture was reworked in this canary. Sometimes it means a specific reproducible path was repaired and the report no longer applies. Treat the notes as a list of known defects that stopped reproducing rather than as a performance guarantee.
Where This Leaves Flutter Builds
Flutter projects do not consume the Android Gradle Plugin directly in the sense of writing Gradle configuration for their Dart code, but the generated Android host module does, and the plugin version pinned by a Flutter project is what decides R8 behaviour, resource shrinking, and AAR packaging. A three year compatibility window now governs how long older plugin versions remain supported, so teams can move deliberately rather than chasing each alpha.
Canary channel builds are for evaluation, not for a project food chain that includes production releases. The sensible use of Rabbit 3 Canary 3 is to open a copy of your Android host module, run a release build with shrinking enabled, and check whether the R8 report link and the Prefab packaging behave as described. If you depend on plugins with native libraries, that single check is worth more than reading the rest of the changelog.