AndroidAGP9.0升级之路
AndroidAGP9.0升级之路1.前言最近把Android Studio升级到了9.0但是发现有不少问题由于之前升级7.0、8.0都有很多经验踩坑很多所以这次升级很顺利如果是7.0以下不建议直接升级当然经验丰富就无所谓了直接上代码.官网参考文档https://developer.android.google.cn/build/releases/agp-9-0-0-release-notes?hlhr2.简介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。以下是更多兼容性信息最低版本默认版本备注Gradle9.1.09.1.0如需了解详情请参阅更新 Gradle。SDK Build Tools36.0.036.0.0安装或配置 SDK Build Tools。NDK不适用28.2.13676358安装或配置其他版本的 NDK。JDK1717如需了解详情请参阅设置 JDK 版本。4.升级AGP版本到9.3.1我最开始的版本是8.9.3升级到9.3.1[versions]agp9.3.1org-jetbrains-kotlin-android1.8.0core-ktx1.15.0junit4.13.2androidx-test-ext-junit1.1.5espresso-core3.5.1appcompat1.6.1material1.13.0constraintlayout2.1.4glide4.13.0glide-compiler4.13.0camerax1.1.0-beta03camerax-core1.1.0-beta03camerax-video1.1.0-beta03camerax-view1.1.0-beta03camerax-extensions1.2.2camerax-lifecycle1.1.0-beta03kotlin-stdlib1.8.0kotlin-reflect1.8.0kotlinx-coroutines-core1.8.0kotlinx-coroutines-android1.8.0utilcodex1.31.1activity1.12.05.报错gradle插件版本太低提示gradle插件要改成9.5.0当前的是8.11.1修改后的配置#Sun Aug2315:17:09CST2026distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists distributionSha256Sum553c78f50dafcd54d65b9a444649057857469edf836431389695608536d6b746 distributionUrlhttps\://services.gradle.org/distributions/gradle-9.5.0-bin.zip validateDistributionUrltruezipStoreBaseGRADLE_USER_HOME zipStorePathwrapper/dists6.kotlin重复引入报错Build file D:\workspace\camera-xdemo\app\build.gradle.kts line:4An exception occurred applying plugin request[id:org.jetbrains.kotlin.android,version:1.8.0]Failedtoapply plugin org.jetbrains.kotlin.android.Cannot add extension with name kotlin,asthereisan extension already registered with that name.*Try:Run with--infoor--debug optiontogetmore log output.Run with--scantogetfull insights from a BuildScan(poweredbyDevelocity).Get more help at https://help.gradle.org.*Exceptionis: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)内置 KotlinAndroid 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配置importorg.jetbrains.kotlin.storage.CacheResetOnProcessCanceled.enabledSuppress(DSL_SCOPE_VIOLATION)plugins{alias(libs.plugins.com.android.application)}// 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)applyfalse}truelibs.versions.toml的kotlin-android配置去掉[plugins]com-android-application{idcom.android.application,version.refagp}org-jetbrains-kotlin-android{idorg.jetbrains.kotlin.android,version.reforg-jetbrains-kotlin-android}8.kotlin中jvm配置修改修改前配置compileOptions{sourceCompatibilityJavaVersion.VERSION_1_8 targetCompatibilityJavaVersion.VERSION_1_8}kotlinOptions{jvmTarget1.8}修改后配置compileOptions{sourceCompatibilityJavaVersion.VERSION_11 targetCompatibilityJavaVersion.VERSION_11}kotlin{compilerOptions{jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11)}}9.修改后运行:10.运行效果截图11.完整的Demo地址https://gitee.com/jackning_admin/camera-xdemo12.本次升级完整踩坑清单回顾AGP9.3.1 → Gradle 版本不够 (8.11.1)升级 Gradle wrapper 到9.5.0Cannot 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

相关新闻