Follow-up to the AGP 8.13.1 → 9.2.1 bump (#5777). To land AGP 9 without a large refactor, the bump 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.newDsl=false
Why this matters: android.newDsl=false opts out of AGP 9's new DSL. If Google removes this flag in a future AGP release, we will be unable to upgrade until the migration is done.
Current state:
- The root
build.gradle.kts (around lines 174-180) still configures library modules via the legacy com.android.build.gradle.BaseExtension inside plugins.withId("com.android.library") { ... }. This is what depends on the old DSL.
- Runtime modules already use the new
androidComponents Variant API (beforeVariants/onVariants); the old libraryVariants/applicationVariants/BaseVariant API is not used anywhere. Good starting position.
- Fragility to address:
sentry-samples/sentry-samples-android/build.gradle.kts imports the internal com.android.build.api.variant.impl.VariantImpl (a non-stable .impl. class), a likely future break point.
Scope:
- Replace the
BaseExtension-based configuration in the root build with the new DSL.
- Remove the internal
VariantImpl usage in the Android sample.
- Remove
android.newDsl=false from gradle.properties and confirm the build passes.
Done when: android.newDsl=false is removed and the build works on the new AGP DSL.
Should be picked up after the AGP bump PRs merge.
Follow-up to the AGP 8.13.1 → 9.2.1 bump (#5777). To land AGP 9 without a large refactor, the bump added a temporary opt-out in
gradle.properties:Why this matters:
android.newDsl=falseopts out of AGP 9's new DSL. If Google removes this flag in a future AGP release, we will be unable to upgrade until the migration is done.Current state:
build.gradle.kts(around lines 174-180) still configures library modules via the legacycom.android.build.gradle.BaseExtensioninsideplugins.withId("com.android.library") { ... }. This is what depends on the old DSL.androidComponentsVariant API (beforeVariants/onVariants); the oldlibraryVariants/applicationVariants/BaseVariantAPI is not used anywhere. Good starting position.sentry-samples/sentry-samples-android/build.gradle.ktsimports the internalcom.android.build.api.variant.impl.VariantImpl(a non-stable.impl.class), a likely future break point.Scope:
BaseExtension-based configuration in the root build with the new DSL.VariantImplusage in the Android sample.android.newDsl=falsefromgradle.propertiesand confirm the build passes.Done when:
android.newDsl=falseis removed and the build works on the new AGP DSL.Should be picked up after the AGP bump PRs merge.