<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/16ctn4ya4" -->

---
title: Migrating Kotlin projects to Android Gradle plugin 9.0
description: AGP 9 introduces two major changes for Kotlin projects: built-in Kotlin support (removing the need to apply the Kotlin Android plugin manually) and a new...
canonical: https://daily.dev/posts/16ctn4ya4
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Migrating Kotlin projects to Android Gradle plugin 9.0 | daily.dev
og:description: AGP 9 introduces two major changes for Kotlin projects: built-in Kotlin support (removing the need to apply the Kotlin Android plugin manually) and a new...
og:url: https://daily.dev/posts/16ctn4ya4
og:image: https://api.daily.dev/og/posts/16CtN4YA4.png
og:image:alt: Post cover image
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrating Kotlin projects to Android Gradle plugin 9.0

**[Just Kotlin](https://daily.dev/sources/justkotlin)** · [@giorgishalvashvili](https://daily.dev/giorgishalvashvili) · 2 upvotes · 0 comments

## Summary

AGP 9 introduces two major changes for Kotlin projects: built-in Kotlin support (removing the need to apply the Kotlin Android plugin manually) and a new Android KMP library plugin for Kotlin Multiplatform projects. The built-in Kotlin change requires removing the explicit Kotlin Android plugin and migrating compiler options from androidKotlinOptions to kotlin.compilerOptions. For KMP projects, the old Android application and library plugins are no longer compatible with the KMP plugin — app modules must become pure Android modules, and library modules must migrate to the new android-kmp-library plugin. The new KMP library plugin has notable limitations: no product flavors or build types, Android resources disabled by default, and tests disabled by default. Workarounds exist for build variants (move to app module or create a separate pure Android library), BuildConfig (third-party plugins like gradle-buildconfig-plugin), and resources (enable via androidResources.enable=true). AGP 9 defaults to Kotlin 2.2.10, but this can be overridden by loading any Kotlin plugin with a specific version. Opting out is possible in AGP 9 but will not be available in AGP 10.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=m0Cq6J-V_RY>

## Similar posts on daily.dev

- [Don’t just attend KubeCon \+ CloudNativeCon, Merge Forward your experience\!](https://daily.dev/posts/don-t-just-attend-kubecon-cloudnativecon-merge-forward-your-experience--l0rpp73x8) · CNCF · 1 upvotes · 0 comments
- [Announcing H2 2026 KCDs](https://daily.dev/posts/announcing-h2-2026-kcds-m96goajm1) · CNCF · 1 upvotes · 0 comments
- [Two months of Open Community Groups](https://daily.dev/posts/two-months-of-open-community-groups-asf52zhbs) · CNCF · 0 upvotes · 0 comments
- [CNCF Unveils Schedule for KubeCon \+ CloudNativeCon Europe 2026](https://daily.dev/posts/cncf-unveils-schedule-for-kubecon-cloudnativecon-europe-2026-ikhcoa5cb) · CNCF · 2 upvotes · 0 comments
- [CNCF Debuts KubeCon \+ CloudNativeCon Japan 2026 Schedule](https://daily.dev/posts/cncf-debuts-kubecon-cloudnativecon-japan-2026-schedule-xp5pyudub) · CNCF · 1 upvotes · 0 comments

---

Tags: [#android](https://daily.dev/tags/android), [#kotlin](https://daily.dev/tags/kotlin), [#gradle](https://daily.dev/tags/gradle)

[View this post on daily.dev](https://daily.dev/posts/16ctn4ya4)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/16ctn4ya4","headline":"Migrating Kotlin projects to Android Gradle plugin 9.0","text":"Shared: Migrating Kotlin projects to Android Gradle plugin 9.0","url":"https://daily.dev/posts/16ctn4ya4","datePublished":"2026-03-02T16:45:25.060Z","dateModified":"2026-03-02T16:46:04.679Z","author":{"@type":"Person","name":"Giorgi Shalvashvili","url":"https://daily.dev/giorgishalvashvili","image":"https://lh3.googleusercontent.com/a/ACg8ocIwuIzmwaSYq8PEmOWByDg7J5ZxDHoG2lH-05--GDMIH4LQQ1tM=s96-c","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":2290}},"image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"sharedContent":{"@type":"WebPage","url":"https://api.daily.dev/r/VLOgTmojL"},"isPartOf":{"@type":"WebPage","url":"https://daily.dev/squads/justkotlin","name":"Just Kotlin"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Just Kotlin","item":"https://daily.dev/squads/justkotlin"},{"@type":"ListItem","position":3,"name":"Migrating Kotlin projects to Android Gradle plugin 9.0"}]}
```

