有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

通过数据绑定将Android项目从Java转换为Kotlin

我有一个用Java编写的大型Android项目,目前正在将其转换为Kotlin。我的许多活动和片段都使用数据绑定

最初,当我使用数据绑定将我的第一个活动转换为Kotlin时,项目无法为此活动构建。错误表示缺少对数据绑定库的引用。我补充说:

kapt 'com.安卓.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,然后在完成后进行一次构建,但是如果您投入了所有工作,然后意识到忽略了一些东西,那么这似乎有点风险。有什么想法吗?提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    当心数据绑定+Kotlin的组合!数据绑定库在内部使用Kotlin,因此会产生一些冲突。我建议您暂时保留使用Java数据绑定的活动/片段类,并将业务逻辑转换为Kotlin。我在一个相当大的项目中遇到了很多问题。项目的依赖性越强,风险就越大。继续逐步转换课程,不要一次转换所有课程!如果一次转换多个文件,请确保本地或远程历史记录完好无损,以便在需要时进行恢复。几周前,我遇到了如此严重的错误,以至于项目无法建成。可以预料到一些非常奇怪的事情。还要注意alpha和beta库,并始终逐个更新库依赖项,以便尽早发现任何不兼容。我希望这有点帮助

    编辑:截至2017年5月20日,我相信上述大多数问题已经解决。此外,Kotlin现在是一种官方语言,所以谷歌应该保证完全兼容,并持续测试