AndroidAGP9.0升级之路
1.前言:
最近把Android Studio升级到了9.0,但是发现有不少问题,由于之前升级7.0、8.0都有很多经验,踩坑很多,所以这次升级很顺利,如果是7.0以下不建议直接升级,当然经验丰富就无所谓了,直接上代码.
官网参考文档:
developer.android.google.cn/build/relea...
2.简介:
Android Gradle 插件 9.0 是一个主要版本,带来了 API 和行为变更。
如需更新到 Android Gradle 插件 9.0.1,请使用 Android Gradle 插件升级助理。AGP 升级助理有助于在升级项目时尽可能保留现有行为,因此即使您尚未准备好采用 AGP 9.0 中的所有新默认设置,也可以将项目升级为使用 AGP 9.0。
此外,还有两项代理技能可供使用,以简化升级流程。 对于非 KMP 应用,请尝试使用 Android 技能库中的 AGP 9 升级技能。对于 KMP 应用,请尝试 JetBrains 的 AGP 9 升级技能。如需详细了解如何在 Android Studio 中使用技能,请参阅使用技能扩展代理模式.
3.兼容性
Android Gradle 插件 9.0 支持的最高 API 级别为 API 级别 36.1。以下是更多兼容性信息:
| 最低版本 | 默认版本 | 备注 | |
|---|---|---|---|
| Gradle | 9.1.0 | 9.1.0 | 如需了解详情,请参阅更新 Gradle。 |
| SDK Build Tools | 36.0.0 | 36.0.0 | 安装或配置 SDK Build Tools。 |
| NDK | 不适用 | 28.2.13676358 | 安装或配置其他版本的 NDK。 |
| JDK | 17 | 17 | 如需了解详情,请参阅设置 JDK 版本。 |
4.升级AGP版本到9.3.1:
我最开始的版本是8.9.3

升级到9.3.1:
ini
[versions]
agp = "9.3.1"
org-jetbrains-kotlin-android = "1.8.0"
core-ktx = "1.15.0"
junit = "4.13.2"
androidx-test-ext-junit = "1.1.5"
espresso-core = "3.5.1"
appcompat = "1.6.1"
material = "1.13.0"
constraintlayout = "2.1.4"
glide = "4.13.0"
glide-compiler = "4.13.0"
camerax = "1.1.0-beta03"
camerax-core = "1.1.0-beta03"
camerax-video = "1.1.0-beta03"
camerax-view = "1.1.0-beta03"
camerax-extensions = "1.2.2"
camerax-lifecycle = "1.1.0-beta03"
kotlin-stdlib = "1.8.0"
kotlin-reflect = "1.8.0"
kotlinx-coroutines-core = "1.8.0"
kotlinx-coroutines-android = "1.8.0"
utilcodex = "1.31.1"
activity= "1.12.0"
5.报错gradle插件版本太低:
提示gradle插件要改成9.5.0,当前的是8.11.1

修改后的配置:
ini
#Sun Aug 23 15:17:09 CST 2026
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-9.5.0-bin.zip
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
6.kotlin重复引入报错:

php
Build file 'D:\workspace\camera-xdemo\app\build.gradle.kts' line: 4
An exception occurred applying plugin request [id: 'org.jetbrains.kotlin.android', version: '1.8.0']
> Failed to apply plugin 'org.jetbrains.kotlin.android'.
> Cannot add extension with name 'kotlin', as there is an extension already registered with that name.
* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.
* Exception is:
org.gradle.api.plugins.InvalidPluginException: An exception occurred applying plugin request [id: 'org.jetbrains.kotlin.android', version: '1.8.0']
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.exceptionOccurred(DefaultPluginRequestApplicator.java:184)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator$ApplyAction.apply(DefaultPluginRequestApplicator.java:165)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$applyPlugins$1(DefaultPluginRequestApplicator.java:135)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:135)
at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:45)
at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:246)
at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.applyPluginsTo(Interpreter.kt:399)
at Program.execute(Unknown Source)
内置 Kotlin
Android Gradle 插件 9.0 引入了内置 Kotlin 支持,并默认启用该支持。这意味着,您无需再在 build 文件中应用 org.jetbrains.kotlin.android(或 kotlin-android)插件来编译 Kotlin 源文件。这简化了 Kotlin 与 AGP 的集成,避免了使用已弃用的 API,并在某些情况下提高了性能。
因此,当您将项目升级到 AGP 9.0 时,还需要迁移到内置 Kotlin 或选择停用。
您还可以为没有 Kotlin 源的 Gradle 子项目选择性地停用内置 Kotlin 支持。
7.修改如下:
分别去掉app目录下的build.gradle和项目的build.gradlekotlin配置
scss
import org.jetbrains.kotlin.storage.CacheResetOnProcessCanceled.enabled
@Suppress("DSL_SCOPE_VIOLATION")
plugins {
alias(libs.plugins.com.android.application)
}

kotlin
// Top-level build file where you can add configuration options common to all sub-projects/modules.
@Suppress("DSL_SCOPE_VIOLATION")
plugins {
alias(libs.plugins.com.android.application) apply false
}
true

libs.versions.toml的kotlin-android配置去掉:
ini
[plugins]
com-android-application = { id = "com.android.application", version.ref = "agp" }
org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "org-jetbrains-kotlin-android" }

8.kotlin中jvm配置修改:
修改前配置:
ini
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}

修改后配置:
ini
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11)
}
}
9.修改后运行:
可以看到修改后项目构建成功,运行也正常

10.运行效果截图:

11.完整的Demo地址:
12.本次升级完整踩坑清单回顾:
- AGP9.3.1 → Gradle 版本不够 (8.11.1),升级 Gradle wrapper 到 9.5.0
Cannot add extension with name 'kotlin'→ AGP 内置 Kotlin,重复加载 kotlin‑android 插件Unresolved reference kotlinOptions→ DSL 变更,改用kotlin{compilerOptions{}}- 无效垃圾导入
import org.jetbrains.kotlin.storage.CacheResetOnProcessCanceled.enabled,直接删掉 - Java 字节码版本升级从 1.8 → 11