多模块Kotlin KTS Android应用模拟器运行报错:脚本插件不兼容
问题描述
首次尝试Android开发,参照Now in Android Demo构建基于Kotlin KTS的多模块应用。在Android Studio Iguana和Hedgehog版本中,运行app模块的build.gradle.kts后无法在模拟器启动应用,报错如下:
warning: default scripting plugin is disabled: The provided plugin org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar is not compatible with this version of compiler
error: unable to evaluate script, no scripting plugin loaded
我的libs.versions.toml版本配置如下:
[versions] accompanist = "0.32.0" android-gradlePlugin = "8.1.4" androidxCore = "1.12.0" junit4 = "4.13.2" androidx-test-ext-junit = "1.1.5" espresso-core = "3.5.1" lifecycle-runtime-ktx = "2.6.1" activity-compose = "1.7.2" androidxComposeBom = "2023.01.00" androidDesugarJdkLibs = "2.0.3" androidxAppCompat = "1.6.1" androidxActivity = "1.8.0" androidxBrowser = "1.6.0" androidxComposeCompiler = "1.4.5" androidxComposeMaterial3 = "1.1.0-alpha06" androidxComposeRuntimeTracing = "1.0.0-alpha01" androidxCoreSplashscreen = "1.0.1" androidxDataStore = "1.0.0" androidxEspresso = "3.5.1" androidxLifecycle = "2.6.2" androidxMacroBenchmark = "1.2.0-rc02" androidxMetrics = "1.0.0-alpha04" androidxNavigation = "2.7.4" androidxProfileinstaller = "1.3.1" androidxStartup = "1.1.1" androidxTestCore = "1.5.0" androidxTestExt = "1.1.5" androidxTestRules = "1.5.0" androidxTestRunner = "1.5.2" androidxTracing = "1.1.0" androidxUiAutomator = "2.2.0" androidxWindowManager = "1.1.0" androidxWork = "2.9.0-beta01" coil = "2.4.0" firebaseBom = "32.3.1" firebaseCrashlyticsPlugin = "2.9.9" firebasePerfPlugin = "1.4.2" gmsPlugin = "4.4.0" googleOss = "17.0.1" googleOssPlugin = "0.10.6" androidxHiltNavigationCompose = "1.0.0" hilt = "2.44.2" hiltExt = "1.0.0" jacoco = "0.8.7" kotlin = "1.8.20" kotlinxCoroutines = "1.7.3" kotlinxDatetime = "0.4.1" kotlinxSerializationJson = "1.6.0" ksp = "1.8.20-1.0.11" lint = "31.1.2" okhttp = "4.11.0" protobuf = "3.24.4" protobufPlugin = "0.9.4" retrofit = "2.9.0" retrofitKotlinxSerializationJson = "1.0.0" room = "2.5.2" secrets = "2.0.1" turbine = "1.0.0" ui-tooling = "1.4.3" material = "1.9.0" robolectric = "4.10.3" roborazzi = "1.5.0" paletteKtx = "1.0.0" material3Android = "1.2.0-alpha12" [bundles]
问题分析
这个错误的核心是Kotlin版本与Android Gradle Plugin(AGP)、Compose Compiler或KSP版本不兼容,导致脚本编译插件无法正常加载。你的当前配置中,AGP 8.1.4与Kotlin 1.8.20的基础匹配是成立的,但Compose Compiler、KSP的版本组合可能存在隐性兼容性问题,或者缓存干扰了插件加载流程。
解决方案
1. 对齐核心依赖版本
修改libs.versions.toml,将Kotlin、AGP、Compose Compiler、KSP调整为经过验证的兼容组合:
kotlin = "1.9.0" android-gradlePlugin = "8.1.4" androidxComposeCompiler = "1.5.0" ksp = "1.9.0-1.0.13"
注:Kotlin与Compose Compiler、KSP版本必须严格对应,上述组合是官方推荐的稳定搭配。
2. 检查根目录settings.gradle.kts配置
确保插件版本统一从libs.versions.toml读取,避免硬编码版本:
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } plugins { id("com.android.application") version libs.versions.android.gradlePlugin.get() id("com.android.library") version libs.versions.android.gradlePlugin.get() id("org.jetbrains.kotlin.android") version libs.versions.kotlin.get() id("com.google.devtools.ksp") version libs.versions.ksp.get() // 其他插件保持一致配置 } }
3. 清理缓存并重构
- 执行终端命令:
./gradlew clean清理构建缓存 - 重启Android Studio,执行
File → Invalidate Caches... → Invalidate and Restart - 重新运行
./gradlew assembleDebug构建项目
4. 降级AGP(备选方案)
如果升级Kotlin版本后问题仍存在,可尝试降级AGP到更稳定的版本:
android-gradlePlugin = "8.0.2" kotlin = "1.8.20" androidxComposeCompiler = "1.4.5" ksp = "1.8.20-1.0.11"
内容的提问来源于stack exchange,提问作者sheryf

