Compose 编译器

使用 Kotlin 编译器插件转换 @Composable 函数并启用优化。
最新更新 稳定版版本 候选发布版本 Beta 版版本 Alpha 版版本
2024 年 8 月 7 日 1.5.15 - - -

结构

Compose 是 androidx 中 7 个 Maven 组 ID 的组合。每个组包含一组有针对性的功能子集,每个子集都有自己的版本说明集。

此表格解释了这些组,并链接到每个版本说明集。

描述
compose.animation在 Jetpack Compose 应用程序中构建动画以丰富用户体验。
compose.compiler使用 Kotlin 编译器插件转换 @Composable 函数并启用优化。
compose.foundation使用现成的构建块编写 Jetpack Compose 应用程序,并扩展基础以构建您自己的设计系统组件。
compose.material使用现成的 Material Design 组件构建 Jetpack Compose UI。这是 Compose 的更高级别入口点,旨在提供与 www.material.io 中描述的组件相匹配的组件。
compose.material3使用 Material Design 3 组件构建 Jetpack Compose UI,它是 Material Design 的下一个演变。Material 3 包括更新的主题和组件以及 Material You 个性化功能,如动态颜色,旨在与新的 Android 12 视觉风格和系统 UI 保持一致。
compose.runtimeCompose 编程模型和状态管理的基本构建块,以及 Compose 编译器插件的目标核心运行时。
compose.ui与设备交互所需的 Compose UI 基本组件,包括布局、绘制和输入。

声明依赖项

要添加对 Compose 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。有关更多信息,请阅读 Google 的 Maven 存储库

在应用程序或模块的 build.gradle 文件中添加您需要的工件的依赖项

Groovy

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "19"
    }
}

Kotlin

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "19"
    }
}

有关依赖项的更多信息,请参阅 添加构建依赖项

反馈

您的反馈有助于使 Jetpack 变得更好。如果您发现新的问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中 现有的问题。您可以通过单击星形按钮,为现有问题添加您的投票。

创建新问题

有关更多信息,请参阅问题跟踪器文档

版本 1.5

版本 1.5.15

2024 年 8 月 7 日

androidx.compose.compiler:compiler:1.5.15androidx.compose.compiler:compiler-hosted:1.5.15 已发布。版本 1.5.15 包含 这些提交

  • 此编译器版本针对 Kotlin 1.9.25。

版本 1.5.14

2024 年 5 月 14 日

androidx.compose.compiler:compiler:1.5.14androidx.compose.compiler:compiler-hosted:1.5.14 已发布。版本 1.5.14 包含 这些提交

此编译器版本针对 Kotlin 1.9.24。

错误修复

  • 确保当源信息关闭时,内联函数体被实现。(Idddb8)

版本 1.5.13

2024 年 5 月 1 日

androidx.compose.compiler:compiler:1.5.13androidx.compose.compiler:compiler-hosted:1.5.13 已发布。版本 1.5.13 包含 这些提交

新功能

  • 强跳跃不再被视为实验性功能,可以在生产环境中安全使用。它将在即将发布的版本中成为默认行为。(I6c8c4)

错误修复

  • 修复具有默认值且包装非原始值的 value 类参数的 @Composable 函数的二进制兼容性。(I89465
  • 来自 Compose 多平台的 JS 和 Native 编译的向上游修复。有关完整详细信息,请参阅上面的提交范围。

版本 1.5.12

2024 年 4 月 17 日

androidx.compose.compiler:compiler:1.5.12androidx.compose.compiler:compiler-hosted:1.5.12 已发布。版本 1.5.12 包含 这些提交

错误修复

  • 修复了 Kotlin 1.9.23 递增编译出现的问题。(Ifca55)
  • 修复非原始内联类中 value 参数的非空类型。(Ie6bb5)

版本 1.5.11

2024 年 3 月 20 日

androidx.compose.compiler:compiler:1.5.11androidx.compose.compiler:compiler-hosted:1.5.11 已发布。版本 1.5.11 包含 这些提交

说明

  • 从这个版本开始,编译器现在将在使用包含此方法的运行时的模块编译时调用 startReplaceGroup,而不是 startReplacableGroupstartReplaceGroup 是在运行时 Compose 运行时 1.7.0-alpha03 中引入的。只有在针对 1.7.0-alpha03 或更高版本的运行时时,才会生成对 startRestartGroup 的调用。

  • 调用 startReplaceGroup 而不是 startReplaceableGroup 使运行时能够更有效地检测更改,但可能会影响 Composer 检测更改并将其发送到 Applier 的顺序。如果 Applier 依赖于这些操作检测的顺序,这可能会导致行为上的细微变化。

新功能

  • 支持 Kotlin 1.9.23

错误修复

  • 修复嵌套外部泛型类型被推断为不稳定。(I3437f, b/327643787)
  • 支持多个稳定性配置文件。(I8db14, b/325326744)
  • Compose 编译器现在通过递归遍历基类/重写来正确地转换重写函数。(I2c9f9, b/316196500)
  • 确保函数引用记忆在未使用直接局部声明的隐式父级时不会尝试捕获它们。(Ib1267)
  • 修复可组合的跨内联 lambda 的代码生成(在没有启用“nonSkippingGroupOptimization”的情况下很难遇到此错误)。(Icb2fd, b/325502738)

版本 1.5.10

2024 年 2 月 21 日

androidx.compose.compiler:compiler:1.5.10androidx.compose.compiler:compiler-hosted:1.5.10 已发布。 版本 1.5.10 包含这些提交。

错误修复

  • 支持 init 块内的实时文字。(b/320397488)
  • 使用调度程序参数来检查函数是否在本地类中 (b/323123439)

版本 1.5.9

2024 年 2 月 7 日

androidx.compose.compiler:compiler:1.5.9androidx.compose.compiler:compiler-hosted:1.5.9 已发布。 版本 1.5.9 包含这些提交。

错误修复

  • 修复匿名对象初始化器中的可组合调用。(b/320261458, 96315c)
  • 将递归局部声明计为捕获。(b/318745941, e7b4b0)
  • 修复内在 remember 更改行为,该行为与 Java 方法引用相关,通过为具有内在 remember 的函数类型强制执行 .changed 来解决。(b/319810819, 77128e)
  • 添加了一个实验性优化,它将移除围绕不可跳过函数的组,例如明确标记为 @NonSkippableComposable 的函数以及隐式不可跳过的函数,例如内联函数和返回非 Unit 值的函数,例如 remember
  • 可以通过传递插件选项 -P plugin:androidx.compose.compiler.plugins.kotlin:nonSkippingGroupOptimization=true 到 Kotlin 编译器来启用此优化。(I1688f)

版本 1.5.8

2024 年 1 月 10 日

androidx.compose.compiler:compiler:1.5.8androidx.compose.compiler:compiler-hosted:1.5.8 已发布。 版本 1.5.8 包含这些提交。

新功能

  • 支持 Kotlin 1.9.22

错误修复

  • 修复使用 Java21 构建时 Compose 编译器构建抛出异常的错误。从 Google Maven 使用 Compose 编译器(即,不自己构建它)的用户从未受到此错误的影响。(b/316644294)
  • 修复某些非内联 lambda 调用者报告 COMPOSABLE_EXPECTED 错误的错误。(b/309364913)
  • 为开放函数添加编译错误(以前仅限于抽象函数)。Compose 目前不支持从重写函数替换默认参数,并且使用默认参数重写可组合函数会在运行时失败。使用 @Suppress("ABSTRACT_COMPOSABLE_DEFAULT_PARAMETER_VALUE") 来抑制,但请注意,在不为参数提供默认值的情况下重写此类函数会导致运行时崩溃。(b/317490247)
  • 修复内在 remember 中阻止值正确传播的错误。(b/316327367)

外部贡献

版本 1.5.7

2023 年 12 月 19 日

androidx.compose.compiler:compiler:1.5.7androidx.compose.compiler:compiler-hosted:1.5.7 已发布。 版本 1.5.7 包含这些提交。

错误修复

  • 修复 remember() 键参数调用可组合函数时 Compose 运行时崩溃 (b/315855015)
  • 修复使用 return@ 时 Compose 运行时崩溃。(b/315821171)
  • 避免在记忆键中使用绝对路径,这可以更好地利用构建缓存。(b/313937484)

版本 1.5.6

2023 年 12 月 6 日

androidx.compose.compiler:compiler:1.5.6androidx.compose.compiler:compiler-hosted:1.5.6 已发布。 版本 1.5.6 包含这些提交。

新功能

  • 支持 Kotlin 1.9.21

错误修复

  • 启用内在 remember - 将内联 remember 到 Compose 编译器插件中的编译器转换,并将 .equals 比较替换为稳定参数的元数据的 int 比较。这会导致使用更少的插槽并在运行时进行更少的比较。可以通过提供编译器插件参数来禁用此选项:-P plugin:androidx.compose.compiler.plugins.kotlin:intrinsicRemember=false。(If675f)
  • 修复适配函数引用和内联参数的记忆。(b/312738720)
  • 在退出内联函数调用时实现组 (b/312242547)

外部贡献

  • 修复 k/native 和 k/wasm 运行时崩溃,这是由于可组合函数缺少 return 语句导致的,当它是最后一个语句并返回一个 null 常量时。(aosp/2835716)

版本 1.5.5

2023 年 11 月 29 日

androidx.compose.compiler:compiler:1.5.5androidx.compose.compiler:compiler-hosted:1.5.5 已发布。 版本 1.5.5 包含这些提交。

错误修复

  • 修复在查找重写可组合类型时发生的崩溃。(Ib6d2c, b/297665426)
    • stabilityConfigurationPath 添加到已知参数中(之前的错误阻止了使用配置文件标志)。(b/309765121)
    • 记忆修复。(I081d1, I4d7bf)
    • 通过考虑内在 remember 中不确定的参数状态来修复重新组合。(b/263402091)
    • 修复内在 remember 的调试行信息。(Ic8cf5)
    • 修复编译时在查找重写可组合类型期间发生的崩溃(IR 降低失败)。(b/297665426)

外部贡献

版本 1.5.4

2023 年 11 月 7 日

androidx.compose.compiler:compiler:1.5.4androidx.compose.compiler:compiler-hosted:1.5.4 已发布。 版本 1.5.4 包含以下提交。

依赖项更新

  • Compose Compiler 现在与 Kotlin 1.9.20 兼容

新功能

  • 添加了一个实验性选项来启用强跳过模式。强跳过模式允许跳过具有不稳定参数的可组合项。此外,具有不稳定捕获的 lambda 表达式将被记忆。此功能处于实验阶段,不建议用于生产环境。 (22421e)
  • 添加标志以启用/禁用源/跟踪信息。 (4d45f09)
  • 允许通过配置文件配置外部类的稳定性。 (If40eb)

错误修复

  • 修复当未收集源信息时从可组合函数提前退出。 (fe6267)
  • 修复从可组合函数继续执行。 (948362)
  • 修复当从具有多个依赖于表达式返回值类型的重载的函数调用中调用可组合函数时,解析问题。 (2d36d0)
  • 修复当函数引用没有分派接收器时记忆问题。 (fc2326)
  • 修复在某些情况下阻止 lambda 表达式重新组合的脏检查。 (db3699)
  • 修复跨模块增量编译时的稳定性。 (7d3e127)
  • @DontMemoize 的范围缩减到仅限 lambda 表达式。 (7a7fa52)
  • 修复当使用可组合的函数接口作为 lambda 时,变量未被正确捕获的问题。 (5ae3556)

外部贡献

  • 对数字和 null 比较使用结构相等符号 (c612a0)

版本 1.5.3

2023 年 8 月 29 日

androidx.compose.compiler:compiler:1.5.3, androidx.compose.compiler:compiler-daemon:1.5.3androidx.compose.compiler:compiler-hosted:1.5.3 已发布。 版本 1.5.3 包含以下提交。

依赖项更新

  • Kotlin 版本更新至 1.9.10

版本 1.5.2

2023 年 8 月 23 日

androidx.compose.compiler:compiler:1.5.2, androidx.compose.compiler:compiler-daemon:1.5.2androidx.compose.compiler:compiler-hosted:1.5.2 已发布。 版本 1.5.2 包含以下提交。

错误修复

  • 在常量返回的可组合函数中插入 return 语句的行号。 (I42d89)
  • 修复切换到新的编译器插件入口点导致的内存泄漏问题。 (4f0a101)
  • 停止在 Compose Compiler 中转换非可组合的函数接口。这会导致函数接口与 lambda 表达式相同的方式处理,包括记忆规则。 (28b3ce9)
  • 对调用位置使用可变参数参数类型来推断稳定性。 (bc83645)

版本 1.5.1

2023 年 7 月 26 日

androidx.compose.compiler:compiler:1.5.1, androidx.compose.compiler:compiler-daemon:1.5.1androidx.compose.compiler:compiler-hosted:1.5.1 已发布。 版本 1.5.1 包含以下提交。

错误修复

  • 修复了在具有提前返回的 @ReadOnlyComposable 函数中,组合跟踪事件标记导致跟踪损坏的问题。

版本 1.5.0

2023 年 7 月 18 日

androidx.compose.compiler:compiler:1.5.0, androidx.compose.compiler:compiler-daemon:1.5.0androidx.compose.compiler:compiler-hosted:1.5.0 已发布。 版本 1.5.0 包含以下提交。

实验性 K2 支持

  • Compose Compiler 1.5.0 提供了对 K2 编译器 的实验性支持。一些 Compose 功能在 K2 中尚不支持,将在未来版本的编译器中提供。

自 1.4.0 以来重要的更改

  • Kotlin 版本更新至 1.9.0。
  • 已弃用 @Composable lambda 调用的 命名参数。此功能依赖于内部编译器 API,在 K2 中将不再支持。
  • 添加了一个诊断程序来验证 @Composable 在预期/实际调用上的注释。预计两个声明都具有匹配的注释。

版本 1.4.8

版本 1.4.8

2023 年 6 月 28 日

androidx.compose.compiler:compiler:1.4.8, androidx.compose.compiler:compiler-daemon:1.4.8androidx.compose.compiler:compiler-hosted:1.4.8 已发布。 版本 1.4.8 包含以下提交。

新功能

  • 目标 Kotlin 编译器版本已提升至 1.8.22。

错误修复

  • 改进了对 @Composable 重写方法的错误消息。现在它正确地指出了注释不匹配。
  • 警告在不应标记为可组合的内联 lambda 表达式上使用冗余的 @Composable 注释。此功能在 K2 编译器中将不再支持。

版本 1.4.7

版本 1.4.7

2023 年 5 月 3 日

androidx.compose.compiler:compiler:1.4.7, androidx.compose.compiler:compiler-daemon:1.4.7androidx.compose.compiler:compiler-hosted:1.4.7 已发布。 版本 1.4.7 包含以下提交。

新功能

  • 支持 Kotlin 1.8.21
  • 添加了 State API 的基本版本,允许 Int、Long、Float 和 Double 值在 State 对象中跟踪,而不会因自动装箱而导致性能损失。

版本 1.4.6

版本 1.4.6

2023 年 4 月 19 日

androidx.compose.compiler:compiler:1.4.6, androidx.compose.compiler:compiler-daemon:1.4.6androidx.compose.compiler:compiler-hosted:1.4.6 已发布。 版本 1.4.6 包含以下提交。

错误修复

  • Compose Compiler 现在依赖于 Java11(而不是 Compose Compiler 版本 1.4.5 所需的 Java17),以便更好地支持仍在使用旧版本 Java 的用户。

版本 1.4.5

版本 1.4.5

2023 年 4 月 12 日

androidx.compose.compiler:compiler:1.4.5, androidx.compose.compiler:compiler-daemon:1.4.5androidx.compose.compiler:compiler-hosted:1.4.5 已发布。 版本 1.4.5 包含以下提交。

注意 此版本的 Compose Compiler 要求您的构建环境使用 Java 17 或更高版本。根据用户反馈,我们将把此要求降回 Java 11,并进行另一个版本 (1.4.6) 的发布,以便更好地支持使用旧版本 Java 的用户。

新功能

支持 Kotlin 1.8.20

错误修复

  • 将可组合调用运算符重写的要求传播到扩展具有相应注释的 lambda 接口的类和接口。 f8f2f78a1a769c2373201027f12700e772e4e97e
  • 允许在 getValue 运算符上使用 @Composable 注释,并在 IR 中将生成的委托 getter 标记为可组合,以确保它在以后被正确转换。 f174f6ee60ca957d5cb6d19a5bd02a88267cdf40
  • 修复内联函数中的内部 Compose 运行时错误(预期 applyChanges() 已被调用)。 b/274786923
  • 避免捕获 ProcessCancelledException,因为它在 IDE 中具有特殊含义。 b/274725600

外部贡献

版本 1.4.4

版本 1.4.4

2023 年 3 月 22 日

androidx.compose.compiler:compiler:1.4.4, androidx.compose.compiler:compiler-daemon:1.4.4androidx.compose.compiler:compiler-hosted:1.4.4 已发布。 版本 1.4.4 包含以下提交。

错误修复

  • 修复可组合内联 lambda 返回值 (72172b)
  • 允许可组合项返回 Nothing(在可组合函数中使用 TODO 时,不要生成错误) 3aea8d

版本 1.4.3

版本 1.4.3

2023 年 2 月 22 日

androidx.compose.compiler:compiler:1.4.3 已发布。 版本 1.4.3 包含以下提交。

错误修复

  • 修复可组合调用参数中的条件可组合调用 (Ie93edb)

版本 1.4.2

版本 1.4.2

2023 年 2 月 8 日

androidx.compose.compiler:compiler:1.4.2 已发布。 版本 1.4.2 包含以下提交。

新功能

  • 支持 Kotlin 1.8.10

错误修复

  • 在不可跳过 lambda 表达式的主体中添加组以避免重新组合错误。

版本 1.4.1

版本 1.4.1

2023 年 2 月 8 日

androidx.compose.compiler:compiler:1.4.1 已发布。 版本 1.4.1 包含以下提交。

错误修复

  • 禁用先前导致一些代码生成错误的内在 remember 优化。
  • 禁用包含可变参数参数的函数中的内在 remember。
  • 修复具有默认参数的可组合项中的错误跳过
  • 如果检查 Kotlin 兼容性失败,添加防御性回退错误消息。
  • 从内联 lambda 表达式中删除跳过代码生成

版本 1.4.0

2023 年 1 月 17 日

androidx.compose.compiler:compiler:1.4.0 已发布。 版本 1.4.0 包含以下提交。

自 1.3.0 以来重要的更改

  • 支持 Kotlin 1.8.0
  • 关闭内在 remember
  • UI 工具数据类 Group 现在有一个字段 isInline,用于指示该组是否用于调用内联可组合函数。如果 isInlinetrue,则该调用为对内联可组合函数的调用。但是,对于来自使用未生成内联函数信息的 Compose 编译器插件版本的模块的内联可组合函数的调用,该值可能为 false。
  • ImmutableCollection 及其 Persistent 兄弟现在被认为是稳定的。
  • AnimatedContent 中添加了用于工具标签的新参数。
  • 修复了内联 lambda 的代码生成错误。

版本 1.4.0-alpha02

2022 年 11 月 11 日

androidx.compose.compiler:compiler:1.4.0-alpha02 已发布。 版本 1.4.0-alpha02 包含这些提交。

新功能

  • 添加了对 Kotlin 1.7.21 的支持。

版本 1.4.0-alpha01

2022 年 11 月 9 日

androidx.compose.compiler:compiler:1.4.0-alpha01 已发布。 版本 1.4.0-alpha01 包含这些提交。

错误修复

  • 修复了从内联可组合函数中提前返回的能力(b/255350755)。
  • 修复了 Decoy 降低中的 bug,该 bug 导致 Compose 中的 Kotlin/JS 支持中断(6a40f8)。

版本 1.3

版本 1.3.2

2022 年 10 月 4 日

androidx.compose.compiler:compiler:1.3.2 已发布。 版本 1.3.2 包含这些提交。

新功能

  • 此版本包括对 Kotlin 1.7.20 的更新。

版本 1.3.1

2022 年 9 月 7 日

androidx.compose.compiler:compiler:1.3.1 已发布。 版本 1.3.1 包含这些提交。

错误修复

  • 修复了在某些情况下 Compose 编译器错误地将单元类型标记为可组合的 IllegalStateException。(b/237863365
  • 用户现在必须在抑制编译器版本检查时指定其首选的 Kotlin 版本(I9e5e2)。

版本 1.3.0

2022 年 8 月 10 日

androidx.compose.compiler:compiler:1.3.0 已发布。 版本 1.3.0 包含这些提交。

版本 1.3.0-rc02

2022 年 8 月 3 日

androidx.compose.compiler:compiler:1.3.0-rc02 已发布。 版本 1.3.0-rc02 包含这些提交。

版本 1.3.0-rc01

2022 年 7 月 27 日

androidx.compose.compiler:compiler:1.3.0-rc01 已发布。 版本 1.3.0-rc01 包含这些提交。

版本 1.3.0-beta01

2022 年 7 月 20 日

androidx.compose.compiler:compiler:1.3.0-beta01 已发布。 版本 1.3.0-beta01 包含这些提交。

新功能

  • 添加了对 Kotlin 1.7.10 的支持。

版本 1.2

版本 1.2.0

2022 年 6 月 29 日

androidx.compose.compiler:compiler:1.2.0 已发布。 版本 1.2.0 包含这些提交。

自 1.1.0 以来的重要更改

版本 1.2.0-rc02

2022 年 6 月 22 日

androidx.compose.compiler:compiler:1.2.0-rc02 已发布。 版本 1.2.0-rc02 包含这些提交。

错误修复

  • 删除了可组合跟踪事件代码生成(aosp/2127922)。

版本 1.2.0-rc01

2022 年 6 月 15 日

androidx.compose.compiler:compiler:1.2.0-rc01 已发布。 版本 1.2.0-rc01 包含这些提交。

版本 1.2.0-beta03

2022 年 6 月 1 日

androidx.compose.compiler:compiler:1.2.0-beta03 已发布。 版本 1.2.0-beta03 包含这些提交。

版本 1.2.0-beta02

2022 年 5 月 18 日

androidx.compose.compiler:compiler:1.2.0-beta02 已发布。 版本 1.2.0-beta02 包含这些提交。

版本 1.2.0-beta01

2022 年 5 月 11 日

androidx.compose.compiler:compiler:1.2.0-beta01 已发布。 版本 1.2.0-beta01 包含这些提交。

  • 这是 1.2 的第一个 beta 版本!自上次 alpha 版本以来没有更改。

新功能

  • 添加了对 Kotlin 1.6.21 的支持。

版本 1.2.0-alpha08

2022 年 4 月 20 日

androidx.compose.compiler:compiler:1.2.0-alpha08 已发布。 版本 1.2.0-alpha08 包含这些提交。

版本 1.2.0-alpha07

2022 年 4 月 6 日

androidx.compose.compiler:compiler:1.2.0-alpha07 已发布。 版本 1.2.0-alpha07 包含这些提交。

版本 1.2.0-alpha06

2022 年 3 月 23 日

androidx.compose.compiler:compiler:1.2.0-alpha06 已发布。 版本 1.2.0-alpha06 包含这些提交。

版本 1.2.0-alpha05

2022 年 3 月 9 日

androidx.compose.compiler:compiler:1.2.0-alpha05 已发布。 版本 1.2.0-alpha05 包含这些提交。

版本 1.2.0-alpha04

2022 年 2 月 23 日

androidx.compose.compiler:compiler:1.2.0-alpha04 已发布。 版本 1.2.0-alpha04 包含这些提交。

版本 1.2.0-alpha03

2022 年 2 月 9 日

androidx.compose.compiler:compiler:1.2.0-alpha03 已发布。 版本 1.2.0-alpha03 包含这些提交。

版本 1.2.0-alpha02

2022 年 1 月 26 日

androidx.compose.compiler:compiler:1.2.0-alpha02 已发布。 版本 1.2.0-alpha02 包含这些提交。

版本 1.2.0-alpha01

2022 年 1 月 12 日

androidx.compose.compiler:compiler:1.2.0-alpha01 已发布。 版本 1.2.0-alpha01 包含这些提交。

新功能

  • 添加了对 Kotlin 1.6.10 的支持。

版本 1.1

版本 1.1.1

2022 年 2 月 23 日

androidx.compose.compiler:compiler:1.1.1 已发布。 版本 1.1.1 包含这些提交。

错误修复

  • 修复了 androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList 处的 NullPointerExceptionaosp/1947059b/206677462)。
  • 修复了在 Android 上从剪贴板读取时由剪贴板内容引起的崩溃。(I06020b/197769306)。
  • 修复了 LazyVerticalGrid 中的 RTL(aosp/1931080b/207510535)。

版本 1.1.0

2022 年 2 月 9 日

androidx.compose.compiler:compiler:1.1.0 已发布。 版本 1.1.0 包含这些提交。

自 1.0.0 以来的重要更改

  • 对 Android 12 过度滚动效果 的稳定支持
  • 对触摸目标大小的改进
  • 请注意,关于 Compose 1.0,Material 组件将扩展其布局空间以满足 Material 无障碍准则触摸目标大小。例如,即使您将按钮的大小设置为更小,按钮触摸目标也会扩展到最小尺寸 48x48dp。这使 Compose Material 与 Material Design Components 的行为保持一致,如果您混合使用 View 和 Compose,则会提供一致的行为。此更改还确保在使用 Compose Material 组件创建 UI 时,将满足触摸目标无障碍的最低要求。
  • 导航栏 的稳定支持
  • 将许多以前实验性的 API 升级到稳定状态
  • 支持 更新版本的 Kotlin

版本 1.1.0-rc03

2022 年 1 月 26 日

androidx.compose.compiler:compiler:1.1.0-rc03 已发布。 版本 1.1.0-rc03 包含这些提交。

错误修复

  • 更新以支持 Compose Material 1.1.0-rc03

版本 1.1.0-rc02

2021 年 12 月 16 日

androidx.compose.compiler:compiler:1.1.0-rc02 已发布。 版本 1.1.0-rc02 包含这些提交。

依赖项更新

  • Compose Compiler 1.1.0-rc02 与 Kotlin 1.6.10 兼容。

版本 1.1.0-rc01

2021 年 12 月 15 日

androidx.compose.compiler:compiler:1.1.0-rc01 已发布。 版本 1.1.0-rc01 包含这些提交。

依赖项更改

  • Compose Compiler 1.1.0-rc01 与 Kotlin 1.6.0 兼容。
  • 可以通过 androidx.dev SNAPSHOT 使用 buildId 8003490 获取兼容的 1.6.10 版本。以下依赖项代码段将为 Compose Compiler 配置 SNAPSHOT。

    将以下代码段添加到项目根目录的 build.gradle 文件中

    buildscript {
        repositories {
            google()
            jcenter()
            maven { url 'https://androidx.dev/snapshots/builds/8003490/artifacts/repository' }
        }
    }
    

    将以下代码段添加到使用 Compose 的应用程序或模块的 build.gradle 文件中

    android {
        composeOptions {
            kotlinCompilerExtensionVersion = "1.2.0-SNAPSHOT"
        }
    }
    

版本 1.1.0-beta04

2021 年 12 月 1 日

androidx.compose.compiler:compiler:1.1.0-beta04 已发布。 版本 1.1.0-beta04 包含这些提交。

新功能

  • 更新以与 Kotlin 1.6.0 兼容。

版本 1.1.0-beta03

2021 年 11 月 17 日

androidx.compose.compiler:compiler:1.1.0-beta03 已发布。 版本 1.1.0-beta03 包含这些提交。

版本 1.1.0-beta02

2021 年 11 月 3 日

androidx.compose.compiler:compiler:1.1.0-beta02 已发布。 版本 1.1.0-beta02 包含这些提交。

版本 1.1.0-beta01

2021 年 10 月 27 日

androidx.compose.compiler:compiler:1.1.0-beta01 已发布。 版本 1.1.0-beta01 包含这些提交。

版本 1.1.0-alpha06

2021 年 10 月 13 日

androidx.compose.compiler:compiler:1.1.0-alpha06 已发布。 版本 1.1.0-alpha06 包含这些提交。

版本 1.1.0-alpha05

2021 年 9 月 29 日

androidx.compose.compiler:compiler:1.1.0-alpha05 已发布。 版本 1.1.0-alpha05 包含这些提交。

版本 1.1.0-alpha04

2021 年 9 月 15 日

androidx.compose.compiler:compiler:1.1.0-alpha04 已发布。 版本 1.1.0-alpha04 包含这些提交。

版本 1.1.0-alpha03

2021 年 9 月 1 日

androidx.compose.compiler:compiler:1.1.0-alpha03 已发布。 版本 1.1.0-alpha03 包含这些提交。

新功能

  • Compose Compiler 现在支持 Compose Runtime 的旧版本 (1.0)。在此更改之前,Compose Compiler 仅与相同版本或更高版本的 Compose Runtime 兼容。此更改后,Compose Compiler 与 Compose Runtime 的旧版本 (1.0) 兼容。 (aosp/1796968)
  • 更新 Compose 1.1.0-alpha03 以依赖于 Kotlin 1.5.30。 (I74545)

版本 1.1.0-alpha02

2021 年 8 月 18 日

androidx.compose.compiler:compiler:1.1.0-alpha02 已发布。 版本 1.1.0-alpha02 包含这些提交。

版本 1.1.0-alpha01

2021 年 8 月 4 日

androidx.compose.compiler:compiler:1.1.0-alpha01 已发布。 版本 1.1.0-alpha01 包含这些提交。

版本 1.0

版本 1.0.5

2021 年 11 月 3 日

androidx.compose.compiler:compiler:1.0.5 已发布。 版本 1.0.5 包含这些提交。

错误修复

  • 修复了跟踪 derivedStateOf 实例的崩溃问题。 (aosp/1792247)

版本 1.0.4

2021 年 10 月 13 日

androidx.compose.compiler:compiler:1.0.4 已发布。 版本 1.0.4 包含这些提交。

依赖项更新

  • 更新为依赖于 Kotlin 1.5.31

版本 1.0.3

2021 年 9 月 29 日

androidx.compose.compiler:compiler:1.0.3 已发布。 版本 1.0.3 包含这些提交。

依赖项更新

  • 更新为依赖于 Kotlin 1.5.30

版本 1.0.2

2021 年 9 月 1 日

androidx.compose.compiler:compiler:1.0.2 已发布。 版本 1.0.2 包含这些提交。

更新为支持 Compose 1.0.2 版本。Compose 1.0.2 仍然与 Kotlin 1.5.21 兼容。

版本 1.0.1

2021 年 8 月 4 日

androidx.compose.compiler:compiler:1.0.1 已发布。 版本 1.0.1 包含这些提交。

依赖项更新

  • 更新为依赖于 Kotlin 1.5.21

版本 1.0.0

2021 年 7 月 28 日

androidx.compose.compiler:compiler:1.0.0 已发布。 版本 1.0.0 包含这些提交。

1.0.0 的主要功能

这是 Compose 的第一个稳定版本。有关更多详细信息,请参阅官方的 Compose 发布博文

版本 1.0.0-rc02

2021 年 7 月 14 日

androidx.compose.compiler:compiler:1.0.0-rc02 已发布。 版本 1.0.0-rc02 包含这些提交。

版本 1.0.0-rc01

2021 年 7 月 1 日

androidx.compose.compiler:compiler:1.0.0-rc01 已发布。 版本 1.0.0-rc01 包含这些提交。

版本 1.0.0-beta09

2021 年 6 月 16 日

androidx.compose.compiler:compiler:1.0.0-beta09 已发布。 版本 1.0.0-beta09 包含这些提交。

版本 1.0.0-beta08

2021 年 6 月 2 日

androidx.compose.compiler:compiler:1.0.0-beta08 已发布。 版本 1.0.0-beta08 包含这些提交。

版本 1.0.0-beta07

2021 年 5 月 18 日

androidx.compose.compiler:compiler:1.0.0-beta07 已发布。 版本 1.0.0-beta07 包含这些提交。

版本 1.0.0-beta06

2021 年 5 月 5 日

androidx.compose.compiler:compiler:1.0.0-beta06 已发布。 版本 1.0.0-beta06 包含这些提交。

版本 1.0.0-beta05

2021 年 4 月 21 日

androidx.compose.compiler:compiler:1.0.0-beta05 已发布。 版本 1.0.0-beta05 包含这些提交。

版本 1.0.0-beta04

2021 年 4 月 7 日

androidx.compose.compiler:compiler:1.0.0-beta04 已发布。 版本 1.0.0-beta04 包含这些提交。

版本 1.0.0-beta03

2021 年 3 月 24 日

androidx.compose.compiler:compiler:1.0.0-beta03 已发布。 版本 1.0.0-beta03 包含这些提交。

版本 1.0.0-beta02

2021 年 3 月 10 日

androidx.compose.compiler:compiler:1.0.0-beta02 已发布。 版本 1.0.0-beta02 包含这些提交。

版本 1.0.0-beta01

2021 年 2 月 24 日

androidx.compose.compiler:compiler:1.0.0-beta01 已发布。 版本 1.0.0-beta01 包含这些提交。

这是 Compose 1.0.0 Beta 的第一个版本。

版本 1.0.0-alpha12

2021 年 2 月 10 日

androidx.compose.compiler:compiler:1.0.0-alpha12 已发布。 版本 1.0.0-alpha12 包含这些提交。

版本 1.0.0-alpha11

2021 年 1 月 28 日

androidx.compose.compiler:compiler:1.0.0-alpha11 已发布。 版本 1.0.0-alpha11 包含这些提交。

版本 1.0.0-alpha10

2021 年 1 月 13 日

androidx.compose.compiler:compiler:1.0.0-alpha10 已发布。 版本 1.0.0-alpha10 包含这些提交。

版本 1.0.0-alpha09

2020 年 12 月 16 日

androidx.compose.compiler:compiler:1.0.0-alpha09 已发布。 版本 1.0.0-alpha09 包含这些提交。

版本 1.0.0-alpha08

2020 年 12 月 2 日

androidx.compose.compiler:compiler:1.0.0-alpha08 已发布。 版本 1.0.0-alpha08 包含这些提交。

版本 1.0.0-alpha07

2020 年 11 月 11 日

androidx.compose.compiler:compiler:1.0.0-alpha07 已发布。 版本 1.0.0-alpha07 包含这些提交。

新功能

  • 稳定性推断和传播。Compose Compiler 插件将分析它编译的类型,以推断它是否符合运行时某些优化的条件。此推断结果随后将作为元数据合成到类中,以便编译器在其他模块中使用。此外,这些推断的运行时结果将通过在组合期间传递到可组合调用中的元数据来传递。这需要可组合函数的不同元数据协议,这意味着使用 alpha07 编译器编译的可组合函数将与使用任何早期编译器版本编译的可组合函数不兼容。 (aosp/1431988)

版本 1.0.0-alpha06

2020 年 10 月 28 日

androidx.compose.compiler:compiler:1.0.0-alpha06 已发布。 版本 1.0.0-alpha06 包含这些提交。

版本 1.0.0-alpha05

2020 年 10 月 14 日

androidx.compose.compiler:compiler:1.0.0-alpha05 已发布。 版本 1.0.0-alpha05 包含这些提交。

版本 1.0.0-alpha04

2020 年 10 月 1 日

androidx.compose.compiler:compiler:1.0.0-alpha04 已发布。 版本 1.0.0-alpha04 包含这些提交。

androidx.compose:compose-compiler 已重构为 androidx.compose.compiler:compiler。这是新组中的第一个版本。