Follow-up to the AGP 8.13.1 → 9.2.1 bump (#5777). AGP 9 bundles its own ("built-in") Kotlin. To land the bump without a large refactor, we added a temporary opt-out in gradle.properties:
# AGP 9+ migration opt-outs until we remove kotlin-android plugin and adopt built-in Kotlin.
android.builtInKotlin=false
Why this matters: android.builtInKotlin=false keeps us on the standalone org.jetbrains.kotlin.android plugin (Kotlin 2.3.21). If Google removes this opt-out in a future AGP release, we would be forced onto built-in Kotlin — and given our current project structure, that may block us from upgrading at all.
What to investigate:
- Whether AGP's built-in Kotlin version can be controlled/pinned, and whether it is compatible with our multi-module setup.
- What breaks if we remove
android.builtInKotlin=false today.
What's involved:
org.jetbrains.kotlin.android is applied in ~15 modules (sentry-android, sentry-android-core, sentry-android-replay, sentry-compose, etc.). Adopting built-in Kotlin means removing that plugin from all of them.
- Interacts with
kotlin.stdlib.default.dependency=false (stdlib management) and the pinned kotlinStdLibVersionAndroid = "1.9.24" (buildSrc/src/main/java/Config.kt:5).
Done when: we understand the constraints, have a documented path forward, and (ideally) can remove android.builtInKotlin=false.
Should be picked up after the AGP bump PRs merge.
Follow-up to the AGP 8.13.1 → 9.2.1 bump (#5777). AGP 9 bundles its own ("built-in") Kotlin. To land the bump without a large refactor, we added a temporary opt-out in
gradle.properties:Why this matters:
android.builtInKotlin=falsekeeps us on the standaloneorg.jetbrains.kotlin.androidplugin (Kotlin 2.3.21). If Google removes this opt-out in a future AGP release, we would be forced onto built-in Kotlin — and given our current project structure, that may block us from upgrading at all.What to investigate:
android.builtInKotlin=falsetoday.What's involved:
org.jetbrains.kotlin.androidis applied in ~15 modules (sentry-android, sentry-android-core, sentry-android-replay, sentry-compose, etc.). Adopting built-in Kotlin means removing that plugin from all of them.kotlin.stdlib.default.dependency=false(stdlib management) and the pinnedkotlinStdLibVersionAndroid = "1.9.24"(buildSrc/src/main/java/Config.kt:5).Done when: we understand the constraints, have a documented path forward, and (ideally) can remove
android.builtInKotlin=false.Should be picked up after the AGP bump PRs merge.