在了解了 compose 之后,决定自己撸一个九宫格尝试下绘制以及手势,于是这个过程中发现了一个有意思的事情。
先用 IDE 的新建 Empty Compose Activity 初始化了相关的 compose 环境以及库。然后写了行代码:
for (i in 0 until dotNum * dotNum)
就这么行代码,Windows 的 IDE 一直提示我:
For-loop range must have an 'iterator()' method
好在不影响运行也不影响调试,我在想 Mac 是否会存在同样的问题,回来后发现,Mac 并不会。我猜,这就是 Windows IDE 的 BUG 了,大概率与 kotlin 版本相关。
在观察了 build 日志后发现:
ComposeOptions.kotlinCompilerVersion is deprecated. Compose now uses the kotlin compiler defined in your buildscript
因为默认生成的那些 gradle 代码里有这么一个指定:
kotlinCompilerVersion '1.5.31'
所以我默认没去怀疑,甚至因为将其改为 1.6.0 后报错,我特意将版本降级与其一致,当我看到上面的 deprecated 后,我知道可以删除它并且将我的 kotlin 版本指定回 1.6.0 了,处理完同步 gradle 后,不会爆红了,正当我满心欢喜时。。。在编译前不报错,但是会在编译时报错!!!
目前的 compose 只适配到了 1.5.31,所以 1.6.0 的 kotlin 版本还是无法使用,于是经过多种尝试,写复杂逻辑时候把 kotlin 升到 1.6.0,run 的时候再改回去,平时一般的逻辑就直接无视 IDE 的爆红吧(虽然没有代码提示,写了这么多年,一般也不需要提示了吧)。
希望 Google 早点解决这个问题~
PS:在新版的 Android studio 大黄蜂 bate 4 已解决,北极狐不行。
以上。
本站由以下主机服务商提供服务支持:
0条评论