kanyun-inc / Kace

Kace: Kotlin Android Compatible Extensions, a framework for assisting in the seamless migration from kotlin-android-extensions
Apache License 2.0
263 stars 12 forks source link

增量编译好像有点问题 #56

Closed crazecoder closed 11 months ago

crazecoder commented 11 months ago

当修改或者新增layout时候,对应的id并没有生成

RicardoJiang commented 11 months ago

我们这边增量的时候表现是正常的,方便的话可以提供一个最小化的 demo 给我们复现一下

crazecoder commented 11 months ago

新建项目,agp7.3.1 gradle7.4.2 kotlin1.8.20 kace1.8.20-1.2.0 as2023.1.1

RicardoJiang commented 11 months ago

我这边试了下

  1. 新建项目,agp7.3.1 gradle7.4.2 kotlin1.8.20 kace1.8.20-1.2.0
  2. 点击 Run app 开始首次编译
  3. 修改 layout 或者新增 layout
  4. 点击 Run app 按钮开始增量编译
  5. 修改的 layout 或者新增的 layout id 都正常生成,无法复现问题
crazecoder commented 11 months ago

好神奇,这边一直不自动生成,不知道和系统有没有关系。。。我是macos14.1.2

RicardoJiang commented 11 months ago

应该是没关系的

bennyhuo commented 11 months ago

好神奇,这边一直不自动生成,不知道和系统有没有关系。。。我是macos14.1.2

建议直接把能复现问题的工程上传到 github,也可能有一些被大家忽略了的细节。

crazecoder commented 11 months ago

MyApplication.zip

crazecoder commented 11 months ago

你们试一下,每次改完id都得make一下module就很烦

RicardoJiang commented 11 months ago

你们试一下,每次改完id都得make一下module就很烦

因为 Kace 是通过生成代码的方式来兼容 KAE 的,所以改完 id 后需要编译一遍才能生成代码,需要 make 一下是正常现象。 Kace 本质上是升级 Kotlin 1.8 之后因为使用 KAE 的页面太多的兼容过渡方案,如果有需要频繁修改的页面,还是建议迁移到 ViewBinding

crazecoder commented 11 months ago

这里的增量的意思不是改完自动生成吗?

RicardoJiang commented 11 months ago

增量是说编译生成代码的时候是增量编译而不是全量编译,速度比较快,你指的可能是 IDE 在还没有编译的时候就生成了代码提示,这部分属于 IDE 插件。

crazecoder commented 11 months ago

额,好吧,这就有点麻烦了,项目太大了,每次make的话时间有点久,当然也因为项目太大,迁移到viewbinding也不是一天两天的事。。。

RicardoJiang commented 11 months ago

可以把经常改动的页面迁移到 ViewBinding,其他页面可以先用 Kace 兼容。