𝗜𝘁 𝗰𝗵𝗮𝗻𝗴𝗲𝘀 𝗵𝗼𝘄 𝗞𝗼𝘁𝗹𝗶𝗻 𝗮𝗻𝗱 𝗞𝗠𝗣 𝗮𝗿𝗲 𝘄𝗶𝗿𝗲𝗱 𝗶𝗻𝘁𝗼 𝗔𝗻𝗱𝗿𝗼𝗶𝗱.
If you maintain Android or Kotlin Multiplatform projects, this is one of those upgrades you should plan deliberately, not postpone.
𝗞𝗼𝘁𝗹𝗶𝗻 𝗶𝘀 𝗻𝗼𝘄 𝗯𝘂𝗶𝗹𝘁 𝗶𝗻 🧩
With AGP 9.0, Android apps no longer need to apply org.jetbrains.kotlin.android.
Kotlin support is enabled by default.
What to do:
- Remove the Kotlin Android plugin.
- Revisit kapt usage and any custom kotlinOptions.
- Temporary opt-outs exist, but they disappear in AGP 10.0.
This is a structural change, not just a clean-up.
𝗔 𝗻𝗲𝘄 𝗔𝗻𝗱𝗿𝗼𝗶𝗱 𝗞𝗠𝗣 𝗽𝗹𝘂𝗴𝗶𝗻 🧱
AGP 9.0 introduces com.android.kotlin.multiplatform.library, designed specifically for KMP.
Implications:
- com.android.library and com.android.application can no longer coexist with KMP in the same module.
- Multiplatform modules must migrate to the new plugin.
- Legacy APIs can be enabled temporarily, but only until AGP 10.0.
𝗟𝗶𝗯𝗿𝗮𝗿𝗶𝗲𝘀 𝘃𝘀 𝗮𝗽𝗽𝘀 🔄
- Library modules: mostly a plugin swap, minimal code changes.
- Application modules: shared code moves to a KMP library module, with a thin Android app module acting as the entry point.
This formalises a separation that many teams already follow implicitly.
𝗧𝗵𝗲 𝗿𝗲𝗮𝗹 𝘁𝗮𝗸𝗲𝗮𝘄𝗮𝘆 🎯
AGP 9.0 is enforcing clearer boundaries:
- Kotlin as a first-class Android concern.
- KMP modules treated as libraries, not hybrid apps.
If your project relies on temporary flags to “buy time”, that time ends with AGP 10.0.
Full details and migration guides are in the JetBrains blog.
#android #androiddeveloper #kotlin #AndroidDev
#kotlinmultiplatform #gradle #agp #mobiledevelopment #jetbrains #buildtools

