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

# 尝鲜  Kotlin Toolchain  

<Frame>
  <img src="https://mintcdn.com/yume/AgUYHGjhMf5Y1T6C/images/amper/photo_2026-06-16_23-55-48.jpg?fit=max&auto=format&n=AgUYHGjhMf5Y1T6C&q=85&s=83506e71d77bb7d46d512573b3f227ea" noZoom={true} width="1500" height="1119" data-path="images/amper/photo_2026-06-16_23-55-48.jpg" />
</Frame>

jetbrains 在 3 月 31 号 在 blog 上发了这篇文章，在此之前完全没有注意到 Amper 这个东西，也是抱着试试水的浅浅尝试一下，粗略的看了一下文档，大概就是想统一全平台构建的体验，天下苦 Gradle 久矣

> **这不得尝尝咸淡**

### 浅浅喷一下 Google 在 Idea 中支持的 Android 插件

众所周知，Android Studio 是由开源的 Idea 改来的，仅面向 Android 开发，内置 Android AGP 各种特性，以及，Google 账号登录支持，(ps: 不知道为什么什么东西都能加上Google登录)，通常 Google 这边的在 AS 的特性上是落后于 Idea 的，例如 jetbrains 之前 feat 的一个进 10 年的 [issue](https://youtrack.jetbrains.com/issue/IJPL-793/Microsoft-word-style-animated-cursor) : `smooth cursor` AS 确实是跟不上，但是 Android 插件绝对是一坨大的， 在 AGP 支持上卡在一个关键节点 AGP9 ， 即使 AS 已经 AGP 都 `9.2.0` 了

<Tip>
  截止 2026 年 6 月 1 日，Android 插件一跟进 AGP 并升级到 `9.0.1`
</Tip>

<Frame>
  <img src="https://mintcdn.com/yume/FmU3jyH8Y1_2VHI3/images/amper/image-20260424165455629.png?fit=max&auto=format&n=FmU3jyH8Y1_2VHI3&q=85&s=8583b19e5170b4d5a4c492320a19ffd4" noZoom={true} width="1952" height="834" data-path="images/amper/image-20260424165455629.png" />
</Frame>

Idea 支持的 Android 插件在插件市场有着 2.0 的顶级评分，感觉如果不是有 1 星的限制 大多数人 1星也不想打， 在 2026 4 月 24 号， 在最新的 Android 插件中 AGP 支持仅为 9.0.0-Alpha06 ，顺带一提，插件更新日志还是写去年 1 月的东西，如此落后，靠 Android 插件在 Idea 中支持显然不可能在开发环境中接触到这种前沿东西，即使如此，Android插件仍然划分了 Idea 支持版本，如果要使用 AGP 9.0.0-Alpha06， 那么必须 使用 Idea 26.1，当然在几个月之前要使用 EAP 版才能使用

卡 AGP 版本直接带来的影响就是卡 KSP， 因为在新版本中内置了 kotlin 插件，如何在适当的版本号正常构建出内容，如何适当升级 KSP 版本，如果要把 KSP 版本和 kotlin 版本支持对齐，那么你大概率会得到 …

> KSP is not compatible with Android Gradle Plugin's built-in Kotlin prior to AGP version 9.0.0-alpha12. Please upgrade to AGP 9.0.0-alpha12 or alternatively disable built-in kotlin by adding android.builtInKotlin=false and android.newDsl=false to gradle.properties and apply kotlin("android") plugin

### 初始化第一个 Amper 项目

<Tree>
  <Tree.Folder name="my-module" defaultOpen>
    <Tree.Folder name="resources">
      <Tree.File name="logback.xml" />
    </Tree.Folder>

    <Tree.Folder name="app" defaultOpen>
      <Tree.File name="module.yaml" />

      <Tree.Folder name="src" defaultOpen>
        <Tree.File name="main.kt" />
      </Tree.Folder>
    </Tree.Folder>

    <Tree.Folder name="common" defaultOpen>
      <Tree.File name="module.yaml" />

      <Tree.Folder name="src" defaultOpen>
        <Tree.File name="World.kt" />
      </Tree.Folder>
    </Tree.Folder>

    <Tree.File name="project.yaml" />

    <Tree.File name="module.yaml" />
  </Tree.Folder>
</Tree>

```yaml project.yaml icon=yaml lines theme={null}
modules:
  - app
  - common
```

```yaml module.yaml expandable icon=yaml lines theme={null}
product: jvm/app

settings:
  kotlin:
    languageVersion: 2.4
    apiVersion: 2.4
    allWarningsAsErrors: false
    suppressWarnings: false
    verbose: false
  jvm:
    release: 25
```

```yaml app/module.yaml icon=yaml lines theme={null}
product: jvm/app

dependencies:
  - ../common
```

```yaml common/module.yaml icon=yaml lines theme={null}
product: jvm/lib

dependencies:
  - org.jetbrains.kotlinx:kotlinx-datetime:0.6.2
```

> Amper **项目** 由一个 `project.yaml` 文件定义。该文件包含模块列表和项目范围 配置。包含该 `project.yaml` 文件的文件夹是 **项目根**目录。模块只能在 项目根（任意深度）。如果项目中只有一个模块，则不需要该 `project.yaml` 文件。
>
> Amper **模块** 是一个包含 `module.yaml` 配置文件的目录，并且可选地包含源代码和资源。 *模块配置文件* 描述了要生成 *的内容* ：例如，一个可复用的库或一个特定平台的应用程序。 每个模块描述一个产品。多个模块不能共享相同的来源或资源，但它们可以依赖 彼此相爱。 *如何* 生成期望的产品，也就是构建规则，是 Amper 构建引擎的责任。
>
> * [https://amper.org/dev/user-guide/basics/](https://amper.org/dev/user-guide/basics/)

所以根目录的 `model.yaml` 可以不写，将配置合并到 `app` 里面即可，在 `project.yaml` 配置子模块

## 后续

<iframe src="https://www.youtube.com/embed/MmwBJbzWbV0" title="YouTube video player" frameborder="0" className="w-full aspect-video rounded-xl" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />

* [KotlinConf’26 Keynote](https://blog.jetbrains.com/kotlin/2026/05/kotlinconf26-keynote-highlights/)
* [kotlin-toolchain](https://github.com/JetBrains/kotlin-toolchain)

Kotlinconf 上宣布了 [kotlin-toolchain](https://github.com/JetBrains/kotlin-toolchain)，并宣布将 amper 作为重要部分组成，总结来说就是 amper 在 `0.10.0` 之后进入了 kotlin 工具链中，此外还有 ktfmt

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/yume/images/%E5%9B%BE%E7%89%87.png" alt="图片" />
</Frame>
