Skip to content

chore(build): migrate to AGP 9 + Gradle 9 + compileSdk 37#84

Merged
ErikChevalier merged 2 commits into
mainfrom
chore/android-toolchain-sdk37
Jun 11, 2026
Merged

chore(build): migrate to AGP 9 + Gradle 9 + compileSdk 37#84
ErikChevalier merged 2 commits into
mainfrom
chore/android-toolchain-sdk37

Conversation

@ErikChevalier

Copy link
Copy Markdown
Contributor

Unblocks dependabot #80 (core-ktx 1.19.0), which requires compileSdk 37 (Android 16) and AGP ≥ 9.1.0.

Changes

  • AGP 8.13.2 → 9.2.1; Gradle wrapper 8.14.5 → 9.4.1 (AGP 9.2 needs Gradle 9.4.1+), checksum updated.
  • compileSdk 36 → 37; core-ktx 1.18.0 → 1.19.0. targetSdk stays 35 (a target bump is a behaviour change for its own pass).
  • Built-in Kotlin opt-out: AGP 9 enables built-in Kotlin + the new DSL by default, which is incompatible with the standalone kotlin.android plugin we apply alongside the version-matched Compose/serialization compiler plugins. Set android.builtInKotlin=false / android.newDsl=false so the existing Kotlin 2.4.0 toolchain keeps driving compilation. Fully adopting built-in Kotlin is a follow-up (required before AGP 10 removes the opt-out).
  • CI + release workflows install the android-37 platform explicitly, since it's new enough that the runner image may not bake it in.

Verification

  • Local clean ktlintCheck lint test assembleDebug → BUILD SUCCESSFUL; assembled APK reports compileSdkVersion 37.
  • The new CI SDK-install step is exercised by this PR's run (the real test of runner SDK availability).

After this merges, #80 is superseded (core-ktx is already at 1.19.0 here) and can be closed.

🤖 Generated with Claude Code

FlintWave and others added 2 commits June 11, 2026 02:11
…ore-ktx 1.19)

androidx core-ktx 1.19.0 requires compileSdk 37 (Android 16) and AGP >= 9.1.0,
so this moves the whole build toolchain forward:

- AGP 8.13.2 -> 9.2.1 and the Gradle wrapper 8.14.5 -> 9.4.1 (AGP 9.2 needs
  Gradle 9.4.1+), with the distribution checksum updated.
- compileSdk 36 -> 37; core-ktx 1.18.0 -> 1.19.0. targetSdk stays 35 (a target
  bump is a behaviour change for its own pass).
- AGP 9 turns on built-in Kotlin + the new DSL by default, which is
  incompatible with the standalone kotlin.android plugin we apply alongside the
  version-matched Compose and serialization compiler plugins. Opt out
  (android.builtInKotlin=false / android.newDsl=false) so the existing Kotlin
  2.4.0 toolchain keeps driving compilation. Adopting built-in Kotlin is a
  follow-up that must land before AGP 10 removes the opt-out.
- CI and release workflows install the android-37 platform explicitly, since
  it is new enough that the runner image may not bake it in.

ktlint + Android Lint + unit tests + debug assembly all green locally; the
assembled APK reports compileSdkVersion 37.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ErikChevalier ErikChevalier merged commit 93692f3 into main Jun 11, 2026
2 checks passed
@ErikChevalier ErikChevalier deleted the chore/android-toolchain-sdk37 branch June 11, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant