如何在你的Android工程中启用K2编译器?

2023-11-15

如何在你的Android工程中启用K2编译器?

K2编译器是用于Kotlin代码编译的最新、高效编译器,你现在可以尝试使用了。

Kotlin编译器正在为Kotlin 2.0进行重写,新的编译器实现(代号K2)带来了显著的构建速度改进,编译Kotlin代码的速度比原始编译器快了两倍。它还具有更灵活的架构,允许在2.0之后引入新的语言功能。

尝试新的编译器

Kotlin 1.9引入了K2新编译器的Beta版本,适用于JVM目标,包括Android项目。为了帮助稳定新编译器并确保准备好迎接Kotlin 2.0,我们鼓励您尝试使用新编译器编译您的项目。如果遇到任何问题,可以在Kotlin问题跟踪器上报告它们。

要尝试新编译器,请更新到Kotlin 1.9,并将以下内容添加到项目的gradle.properties文件中:

kotlin.experimental.tryK2=true

请注意,新编译器目前不应用于生产构建。早期尝试的一个好方法是在项目中创建一个单独的分支以使用K2进行编译。您可以在Now in Android存储库中找到一个示例。

支持K2的工具

依赖Kotlin编译器前端的插件和工具也必须更新以支持K2。一些工具已经具有用于使用K2构建的实验性支持:Jetpack Compose编译器插件从1.5.0开始支持K2,与Kotlin 1.9兼容。

Android Lint从8.2.0-alpha12版本开始支持K2。要在K2上运行Lint,请升级到此版本并将android.lint.useK2Uast=true添加到您的gradle.properties文件中。请注意,任何依赖于旧前端API的自定义Lint规则都必须更新以使用分析API。

在其他工具中添加对K2的支持仍在进行中:KSP和KAPT任务在使用K2构建项目时目前仍会回退到使用旧编译器。但是,当使用这些工具时,编译任务仍可以使用K2运行。

Android Studio还依赖于Kotlin编译器进行代码分析。在Android Studio支持K2之前,使用K2进行构建可能会导致在某些边缘情况下IDE的代码分析与命令行构建之间存在一些差异。

如果您使用任何额外的编译器插件,请检查它们的文档,以查看它们是否已与K2兼容。

立即开始使用K2编译器

立即尝试K2编译器
Kotlin 2.0编译器带来了显著的改进,有助于更快地发布更新、提高生产力,并将更多精力投入到使您的应用独特的方面。它已经与Jetpack Compose兼容,我们还计划在其他工具(包括Android Studio、KSP和编译器插件)中提供更好的支持。现在是时候在您的应用代码中尝试它,并提供与Kotlin、Compose或Lint相关的反馈意见。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在你的Android工程中启用K2编译器? 的相关文章

  • 如何获取之前的碎片?

    为了在我的应用程序中重用某些片段 我需要知道哪个片段是返回堆栈上的第二个片段 为了做到这一点 我正在使用getFragmentManager getFragments 显示以下错误 但有效 FragmentManager getFragme
  • onBeaconServiceConnect 未调用

    和以前一样 我使用 Android Beacon 库 它已经工作了 我可以通过 BLE 低功耗蓝牙找到信标 但是现在 更新到最新版本的库后 现在方法onBeaconServiceConnect 不再跑了 请告诉我我需要做什么才能让它发挥作用
  • Android webview 滚动不起作用

    我正在尝试在网络视图中向下滚动到页面底部 我正在使用谷歌在其教程中提供的网络视图示例 我正在使用这行代码来尝试滚动 但它不起作用 mWebView pageDown true 关于如何使其以编程方式滚动有什么建议吗 谢谢 public cl
  • 从 Android 代码设置的 SECRET_CODE

    我知道如何使用清单文件中的秘密代码 它与此源代码配合良好
  • 安卓定位不准确

    我正在尝试获取当前用户的位置 我试图重构我的代码以获得更好的结果 但我只是不断得到关于准确度的荒谬位置 它在 900 600 米之间 如何才能得到更好的结果 使其精度达到50m以内 这是我的代码 package com agam mapsl
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 如何为发布而不是调试创建密钥库?扑

    我按照使用此网站部署 flutter 的步骤进行操作https flutter io android release https flutter io android release 当我运行 flutter build apk 时出现此错
  • 调整浮动操作按钮的图标大小(fab)

    The new floating action button should be 56dp x 56dp and the icon inside it should be 24dp x 24dp So the space between i
  • android EditText 输入类型用于 StreetNumber 字段

    我试图在地址对话框的 streetNumber 字段中选择正确的 inputType 我想先显示数字键盘 然后让用户输入字母字符 对于一些非常特殊的情况 更接近这个的是 inputType datetime 但这不允许输入字母字符 那么如何
  • glTexImage2D: 之前出错:( 0x506 内部 0x1908 格式 0x1908 类型 0x1401

    当使用 Android Studio 运行模拟器时 我在模拟器屏幕上看不到任何内容 一切都是黑色的 我得到以下事件日志 模拟器 glTexImage2D 出错了 0x506 内部 0x1908 格式 0x1908 类型 0x1401 我已经
  • 放置在 NavigationDrawer 顶部的片段

    我正在尝试添加一个PreferenceFragment在我的应用程序中 问题是 它自动放置在我的顶部NavigationDrawer public class SetPreferenceActivity extends Activity O
  • 菜单在片段的 onCreateOptionsMenu 处多次膨胀调用

    我使用 Fragments 当我切换到嵌套 Fragment 时 它实现了public void onCreateOptionsMenu Menu menu MenuInflater inflater 当我到达该嵌套片段时 我的菜单会多次膨
  • Android:滚动 Horizo​​ntalScrollView 时如何禁用 ScrollView 的垂直滚动?

    我正在开发一个带有带有 ScrollView 的 Activity 的 Android 应用程序 其中包含 Horizo ntalScrollView 等内容 当我触摸 Horizo ntalScrollView 时 我想禁用外部 Scro
  • 在 React Native 中调试应用程序崩溃

    我是 React Native 新手 我正在尝试安装 React Native Facebook SDK 以便我可以使用我的应用程序进行 Facebook 登录 我按照此处列出的步骤操作 https tylermcginnis com in
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • Android 中循环事件的星期几和时间选择器

    我想创建一个控件 允许用户在我的 Android 活动中选择一周中的某一天 星期一 和一天中的某个时间 下午 1 00 找不到任何关于此的好帖子 好吧 我想我已经明白了 我只是不喜欢这个解决方案 因为我在一周中的某一天使用的微调器与时间选择
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • 如何在基本活动中使用 ViewBinding 的抽象?

    我正在创建一个基类 以便子级的所有绑定都将设置在基类中 我已经做到了这一点 abstract class BaseActivity2 b AppCompatActivity private var viewBinding B null pr
  • 获取其他指针的MotionEvent.getRawX/getRawY

    我可以获取其他指针的MotionEvent getRawX getRawY 值吗 MotionEvent getRawX API 参考 http developer android com reference android view Mo
  • 在Android Studio gradle项目中使用NDK和STL

    我在将 stlport 链接到 Android Studio 中的 gradle 项目时遇到问题 使用 NDK 的 Eclipse Android 项目迁移到 Android Studio 该项目使用 STL 我有包含内容的 android

随机推荐

  • Web.xml加载顺序

    文章目录 Tomcat 加载顺序 Web xml具体加载顺序 Tomcat Server处理一个http请求的过程 lt context param gt lt listener gt lt filter gt web xml中定义的元素
  • 阿里云移动推送的接入和踩坑

    近期由于业务需求 要换掉以前的推送 首先选择了阿里云推送 官方介绍阿里移动推送 Alibaba Cloud Mobile Push 是基于大数据的移动智能推送服务 帮助App快速集成移动推送的功能 在实现高效 精确 实时的移动推送的同时 极
  • Elasticsearch 架构解析与最佳实践

  • 基于Docker如何快速部署自己的ChatGPT

    背景 随着OpenAI在2022年底发布的LLM模型 ChatGPT展现出的强大效果 ChatGPT无疑成为了当下炙手可热的明星模型 现有的基于GPT的开源项目已经非常多 本文以现有的高热度github开源项目chatgpt web为例 教
  • 利用宏简化Q_PROPERTY动态属性的定义

    目录 写在前面 实现历程 传统定义方式 预想的方式 事实上有一点点区别 测试通过的例程 mainwindow h mainwindow cpp main cpp 执行结果 Qt6 更新 写在前面 上一篇写了pyqt如何更加便利地定义动态属性
  • 【Unity VR开发】VRTK 3.3.0 配置与基本使用

    VRTK3 3 开发日志 2021 11 16更新 半年前第一次接触VR开发 看B站Siki学院的视频做的笔记 今天整理一下 以供没接触过VR开发的人来学习 有些地方没有配图 但个人认为影响不大 按文字说明一步步来操作还是没问题的 笔记参考
  • Python 和Java 哪个更适合做自动化测试?

    很多小伙伴工作在功能测试行业工作了2 3年后 发现自己已经把功能测试做的非常好了 已经到职业发展和薪资发展的瓶颈期了 就想着学点东西 提提升一下技能 而对于功能测试升级来说 一般有这么3个主流的发展方向 一是性能测试 一是接口测试 一是自动
  • 奶酪【BFS】

    题目链接 点从z 0为起点 想跑到z h 只能在球内 或者是球表层上跑 问能否从起点跑到终点 直接暴力bfs判断即可 include
  • linux下nodejs依赖库libuv库,开发环境准备

    nodejs底层使用libuv库实现异步IO 如果对nodejs的回调函数习以为常 而不知libuv 那岂不是很遗憾 libuv在github上托管了自己的源码 但是我要学习的是希望适用于nodejs某一个版本的 这样的代码是可以经过简单处
  • 华为OD机考攻略一文了解!最新岗位带你起飞

    了解透了华为OD是什么 准备好投递动作了 那就来看看整体的推进流程吧 一般经过 机考 线上 技术面试2轮 资格面试 1轮 综合面试 1轮 全程线上搞定全流程 对于异地的朋友很友好 机考准备之后 其他面试都在一周内完成 所以机考的准备尤为重要
  • 网络志愿者微公益行

    活动中 网络志愿者将书包和牛奶作为新年礼物送给孩子们 并走到愿望墙 一对一完成孩子们的小小愿望 发动仪式完毕后 网络志愿者深化贫困学生家中 详细了解他们的生活困难 并活跃协助处理
  • h5逻辑_H5+app 混合开发

    目录 app分类 h5与原生进行交互 1 判断h5页面打开的环境是ios android 2 JS与客户端互相调用 js调用ios的方法 js调用android的方法 error android接收不到参数 js调用ios与android的
  • redis学习

    1 yfk 博客 Redis http blog csdn net yfkiss article category 1059564
  • Cookie与Session机制,以及scrapy中cookiejar的理解

    Http协议 http是一种无状态协议 先说什么是协议 说白了就是通讯过程中的一种规范 要求 那什么是无状态的呢 就是我们在向服务器请求一个页面的过程中 并不是一个持久性的连接 而是客户端发送一个请求 比方说 我打开腾讯网 然后服务器端返回
  • 惠普PC服务器HP DL360G5网卡的安装

    在惠普服务器 HP DL360G5上安装Linux ES4 0的时候 系统不会自动检测到网卡并安装驱动程序 因此需要手动安装网卡的驱动程序 以下是网卡的安装方法 1 rpm ivh bnx2 1 4 43f 1 src rpm 回车 界面如
  • linux图形界面卡死

    项目场景 linux图形界面卡死 问题描述 鼠标能够移动 但是整个图形界面卡住 解决方案 进入linux下共有六个虚拟控台 f2 f6 分别对应这不同的权限 ctrl alt f2 提示登陆 此时登陆root用户 先输入账号 再输入密码 登
  • IP数据包格式

    IP数据包格式如下 版本号 Version 指 IP 协议的版本 通常为 IPv4 或 IPv6 首部长度 Header Length 指 IP 数据包的首部长度 以 32 位字 4 字节 为单位 区分服务 Differentiated S
  • 网站服务器商标属于哪类,网络水晶头属于商标哪个类别

    水晶头是一种能沿固定方向插入并自动防止脱落的塑料接头 俗称 水晶头 专业术语为RJ 45连接器 RJ 45是一种网络接口规范 类似的还有RJ 11接口 就是我们平常所用的 电话接口 用来连接电话线 之所把它称之为 水晶头 是因为它的外表晶莹
  • jmeter学习笔记(三)-性能测试概念

    性能测试相关概念 a 响应时间 是用户提交一个请求 系统从开始呈现到将所有信息都呈现到客户端所需要的时间 以一个web应用的页面响应时间为例 页面的响应时间可分解为 网络传输时间 N1 N2 N3 N4 应用延迟时间 A1 A2 A3 b
  • 如何在你的Android工程中启用K2编译器?

    如何在你的Android工程中启用K2编译器 K2编译器是用于Kotlin代码编译的最新 高效编译器 你现在可以尝试使用了 Kotlin编译器正在为Kotlin 2 0进行重写 新的编译器实现 代号K2 带来了显著的构建速度改进 编译Kot