5.3 KiB
5.3 KiB
Plugin Compatibility: AGP 9.0
AGP 9.0 introduces breaking changes that affect many third-party plugins. Before migrating, check which plugins the project uses and whether they are compatible.
Known Compatible Plugins (minimum version required)
| Plugin | Minimum Compatible Version | Notes |
|---|---|---|
com.google.devtools.ksp |
2.3.1 (2.3.3+ recommended) | 2.3.1 adds AGP 9.0 support; 2.3.3+ fixes deprecated compilerOptions KGP API usage. May need android.disallowKotlinSourceSets=false |
com.google.dagger.hilt.android |
2.59 | — |
com.google.firebase.firebase-perf |
2.0.2 | — |
androidx.navigation.safeargs |
2.9.5 | — |
org.jetbrains.compose |
1.9.3 | — |
org.jetbrains.dokka |
2.2.0-Beta | — |
app.cash.burst |
2.10.0 | — |
com.google.firebase.testlab |
0.0.1-alpha11 | — |
Plugins Requiring Opt-Out Flags
These work but require temporarily setting android.newDsl=false (or other flags):
| Plugin | Workaround |
|---|---|
androidx.baselineprofile (< 1.5.0-alpha01) |
android.newDsl=false |
de.mannodermaus.android-junit5 (< 1.13.4.0) |
android.newDsl=false |
com.google.android.gms:oss-licenses-plugin (< 0.10.8) |
android.newDsl=false |
com.apollographql.apollo (< 4.4.0) |
android.newDsl=false |
org.gradle.android.cache-fix (< 3.0.2) |
android.newDsl=false |
com.github.triplet.play (< 4.0.0) |
android.newDsl=false |
app.cash.sqldelight |
android.newDsl=false + android.disallowKotlinSourceSets=false |
com.google.protobuf |
android.newDsl=false |
app.cash.paparazzi |
android.newDsl=false |
io.gitlab.arturbosch.detekt (< 2.0.0) |
android.newDsl=false + android.builtInKotlin=false |
org.jlleitschuh.gradle.ktlint |
android.builtInKotlin=false |
dev.icerock.mobile.multiplatform-resources (< 0.26.0) |
android.builtInKotlin=false + android.newDsl=false + android.sourceset.disallowProvider=false |
Known Broken Plugins (No Workaround)
| Plugin | Status |
|---|---|
com.newrelic.agent.android |
Incompatible with AGP 9.0 |
com.huawei.agconnect.agcp |
Incompatible with AGP 9.0 |
What To Do
- Inventory all plugins used in the project
- Check each against the tables above
- If any plugin is broken without workaround, inform the user — they may need to wait for a plugin update or remove it
- If plugins need opt-out flags, add them to
gradle.propertiesand note them as temporary workarounds - Update plugin versions to their AGP 9.0-compatible versions before or during migration