转换Android项目与数据绑定从Java到Kotlin
我有一个用Java编写的大型Android项目,目前正在将其转换为Kotlin。 我的许多活动和片段都使用数据绑定。
最初,当我使用数据绑定将我的第一个活动转换为Kotlin时,该项目无法为此活动构建。 该错误表示缺少对数据绑定库的引用。 我补充说:
kapt 'com.android.databinding:compiler:2.0.0-beta6'
到app/build.gradle
依赖关系
kapt { generateStubs = true }
到相同的文件。
建立之后,数据绑定的Kotlin活动起作用,而所有其余的Java数据绑定活动现在都报告数据绑定包引用不存在。
这让我陷入困境。 我正计划将活动和片段一个一个地转换成Kotlin,并且随着时间的推移构建它们,但是由于我必须在Java或Kotlin之间进行选择,因此目前看起来不太可行。
我发现Kotterknife: https : //github.com/JakeWharton/kotterknife ,这是一个Kotlin视图注入库,但我仍然不能相信,没有办法慢慢地把你的活动从Java转换到Kotlin,即使他们使用数据绑定。 这对我来说根本不可信。
有没有人在过去以这样的方式完成了一个项目,并且没有做出选择呢? 有没有一种方法可以将单个活动转换成一个整体? 另一个选择是一次性把所有的Java转换成Kotlin,然后在完成所有的工作之后做一个单独的构建,但是如果你把所有的工作放在一起,然后意识到你忽略了某些东西,看起来有点冒险。 有任何想法吗? 提前致谢。
谨防数据绑定+ Kotlin的组合! 数据绑定库在内部使用Kotlin,由此产生一些冲突。 我建议你保留现在使用Java中的数据绑定的活动/片段类,并将业务逻辑转换为Kotlin。 我在一个相当大的项目中遇到了很多问题。 项目越依赖,风险就越大。 继续逐步转换课程,从不一次! 如果一次转换多个文件,请确保您的本地或远程历史记录完好无损,以便在需要时进行恢复。 几个星期前,我遇到了非常严重的问题,使得这个项目无法建成。 一些奇怪的事情可以预料。 还要小心alpha和beta库,并且总是逐个更新库依赖关系,以便尽可能早地捕获任何不兼容性。 我希望有一点帮助。
编辑 :截至2017年5月20日,我相信大部分上述问题已经确定。 此外,Kotlin现在是一种官方语言,所以完全兼容性应该得到保证,并不断由Google进行测试。
- 在Kotlin中使用RXJava地图?
- Kotlin – 带多个标志语法的getPendingIntent
- AndroidStudio / Kotlin – 未解决的参考:ReadWriteProperty – Kotlin版本1.0.0-beta-1038
- Gradle同步失败:原因:com / android / build / gradle / BaseExtension
- 你能解释一下有趣的requestByZipCode吗?
- 如何保存从互联网上下载的内部存储位图
- Android Kotlin – 无法安排与警报管理器通知未来的日期
- 我的模型更改时如何重绘Anko frameLayout?
- Google Fit数据不能从云端读取,只能在本地读取