初学 Android 开发就遇到「依赖」错误
标题也可以是「Android Studio自动配置导致的compose插件不存在问题」
@Author: kai
@Time: 2025-03-11
在 Android Studio 中,新建的空白安卓项目在新建Activity后可能出现 org.jetbrains.kotlin.plugin.compose 依赖找不到的错误,配置全部是由工具自动配置的。
Android Studio 版本: 2024.2.2 Patch 2
其他信息:
Build #AI-242.23726.103.2422.13103373, built on February 22, 202
Runtime version: 21.0.5±13047016-b750.29 amd64
问题发现
- 在Android Studio上创建一个空项目,构建工具是 Kotlin DSL,

- 随后在包下面新建空白的 Android Activity


( 页面上提到了:Create a new activity with Jetpack Compose )
- 然后发生了错误😭:
Build file 'F:\Studio\AndroidProjects\ActivityTest3\build.gradle.kts' line: 2 Plugin [id: 'org.jetbrains.kotlin.plugin.compose', version: '1.9.24', apply: false] was not found in any of the following sources...
问题分析
但是在新建 Activity 前,构建是通过的

创建一个空白的 Activity 后报错

IDEA 头部也会提示:

🤔最先考虑的是源的问题,对settings.gradle.kts
配置进行修改,改为国内源:
kotlin
pluginManagement {
repositories {
// google {
// content {
// includeGroupByRegex("com\\.android.*")
// includeGroupByRegex("com\\.google.*")
// includeGroupByRegex("androidx.*")
// }
// }
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url = uri("https://maven.aliyun.com/repository/public") }
google()
mavenCentral()
}
}
rootProject.name = "ActivityTest3" # 注意这里不要覆盖
include(":app")
(这里保留,当前不修改为国内源也是可以使用的,在方案二测试时没有修改镜像源,通过测试。)
使用命令进行清理
powershell
./gradlew clean --refresh-dependencies
但还是不行🧐,修改版本吗?使用org.jetbrains.kotlin.plugin.compose
在 Maven 仓库中进行寻找,找到Maven Repository: org.jetbrains.kotlin.plugin.compose,版本是 2.0 以上了。
但是使用数量为0,会不会是盗版文件?不过还是可以试一下,将版本改为 2.0.0 (不建议的方案三就是这么来的)。
结合之前解决问题时看到的资料,例如Compose Compiler Gradle 插件 | Jetpack Compose | Android Developers,现在应该使用Kotlin2与对应的compose插件。

解决办法
Android Studio 给我默认配置的 Kotlin 是 1.9.24 。
方案一
在Kotlin2之前,我们可以不使用这个插件,它被包含在了 kotlin-android 中。
- 在
//gradle/libs.versions.toml
中将其注释(或删掉)
toml
[versions]
...
[libraries]
...
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
#kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "composePlugin" }
- 在
//build.gradle.kts
中将其注释(或删掉)
kotlin
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.compose) apply false
}
- 在
//app/build.gradle.kts
以及其他地方将其注释掉(或删掉)
kotlin
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
// alias(libs.plugins.kotlin.compose)
}
android {
...
}
dependencies {
...
}
注释之后并不会影响 androidx.compose 依赖,只需要再次同步 Gradle 设置就行了。
如果你为这个问题抓狂,你可能会发现,在创建Activity之前并没有声明 kotlin-compose,同样的,一些示例项目(example)也没有声明它。
方案二
推荐的做法是使用Kotlin2.0.0+ 😊
我们只需要修改//gradle/libs.versions.toml
,将 Kotlin 修改为 2.0.0 或更新的版本:
toml
[versions]
agp = "8.8.2"
# kotlin = "1.9.24"
kotlin = "2.0.0" # 修改为2.0.0+版本的Kotlin
coreKtx = "1.15.0"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
appcompat = "1.7.0"
material = "1.12.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
修改后可能会有提示:

照做就行,但是新的空白项目不会有任何不适配。
根据What's new in Kotlin 2.0.0 | Kotlin Documentation进行更多的配置。此外还有这篇文章如何将 Android 项目迁移到 Kotlin 2.0 和新版本的 Jetpack Compose Compiler? - ITmob可供阅读,其中大部分修改都是在我们使用 Kotlin2 后自动配置的。
比如,你看这里贴出的//gradle/libs.versions.toml
还没有kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
这句配置,但在新建一个 Activity 后就会自动引入。
至于其他 IDEA 提示的地方,大多可以跟着 IDEA 的提示修改。
看来这是 2 的特性,却在 1 里面也被应用了。
方案三
(这个应该是可行的,但是最好使用上面两个方案)
仅修改插件版本配置,目前好像也没有发现问题。//gradle/libs.versions.toml
配置如下:
toml
[versions]
...
kotlin = "1.9.24"
...
composePlugin = "2.0.0"
[libraries]
...
[plugins]
...
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "composePlugin" }
其他
- 至于过程中会出现 compose 依赖不存在的错误(有时候是依赖冲突了),只要
Sync
或Try Again
同步一下 Gradle 的配置就行了。

-
今天又没学多少,这个问题就搞了好久(至少 3 小时)。才学安卓,想搞个空项目练习都不行,太不友好(不是😂),修这个问题确实难为我了,查到的一些方案并不可用。在 MvnRepository 中搜
org.jetbrains.kotlin.plugin.compose
,显示的前几页结果中也没有这个对应的包,还是在必应搜索时找到的。额外还了解到其他几个仓库(索引):-
Google Maven 仓库: 包含所有 AndroidX 和 Jetpack 库
-
Maven Central: 适合查找非 Android 专用的 Kotlin 库
-
⭐Gradle 插件门户: 查找 Gradle 插件。
-
之前使用 Maven 构建 Java 项目都是在 MvnRepository 上搜,看到过 Gradle 配置,然后在解决问题过程中看到 Gradle 也是从 Maven 仓库下载包,想当然地去 MvnRepository 中搜索了。事后为了解开疑惑「org.jetbrains.kotlin.plugin.compose
到底要去哪找?」,找到了Gradle - Plugin: org.jetbrains.kotlin.plugin.compose ,这里面提供的代码与项目中配置文件的格式也相符。这也是为什么 MvnRepository 和 Maven Central 中无法复制配置,以及他们的"使用量"为 0。
-
在解决问题时,还有人提到 Compiler 与 Kotlin 的兼容表,这个还需要每次去"开发文档"查看,但是 compose-plugin 和 Kotlin 同步发布,保持版本一致就行。
-
如何在新建项目时就使用 Kotlin2.0.0+ ?,今天没空研究了。
-
DeepSeek虽然犯了不少错误(这也是为什么我创建了5个 ActivityTest 项目的原因),但是还是提供了一些有价值的信息:
(这些信息经过我纠正后才输出的,仍然不保证正确)
org.jetbrains.kotlin.plugin.compose
是 Kotlin 编译器插件 ,由 JetBrains 维护 ,不属于 Jetpack Compose(AndroidX)的一部分。属于 Kotlin 工具链的一部分androidx.compose.\*
是 Google 维护的 UI 库,属于 Jetpack Compose 的官方实现。
组件 | 作用 | 托管仓库 | 配置方式 |
---|---|---|---|
Kotlin Compose 插件 org.jetbrains.kotlin.plugin.compose |
为 Kotlin 编译器添加对 Compose 语法(如 @Composable )的支持 |
Gradle 插件门户 (plugins.gradle.org) | 在 plugins 块中声明: id("org.jetbrains.kotlin.plugin.compose") version "x.y.z" |
Jetpack Compose 库 androidx.compose.* |
提供 Compose 的 UI 组件(如 Material、布局、动画等) | Google Maven 仓库 (maven.google.com) | 在 dependencies 中添加: implementation("androidx.compose.ui:ui:x.y.z") |
不过他两次将他的输出误认为是我的错误认识,例如:将org.jetbrains.compose
和Jetpack Compose
混淆的是他, 将 org.jetbrains.kotlin.plugin.compose
误认为是 Compose Multiplatform
的也是他,这算不算一中漏洞。