我正在构建一个应用程序,它将严重依赖于用户数据,并计划使用Room来帮助管理和存储他们的信息。然而,在学习教程的过程中,我遇到了一些版本控制问题,我在自己解决这些问题时遇到了麻烦。
因为我对Android开发和使用Room都是相当陌生的,所以我一直在遵循这个教程:Android Room with a View - Kotlin
当我更新我的Gradle文件时,我第一次注意到在步骤3中可能有一些问题。我在dependencies块的最后两行遇到了以下错误:
Library should be updated to be compatible with Kotlin 1.3

我对此感到困惑,因为教程使用了某种类型的变量来确定库版本。我在这一点上运行了这个应用程序,它似乎工作得很好,所以我继续。
当我到达步骤9时,我还遇到了其他错误,这些错误现在阻止了构建的完成:
Type mismatch: inferred type is kotlin.coroutines.experimental.CoroutineContext but kotlin.coroutines.CoroutineContext was expected
Type mismatch: inferred type is kotlin.coroutines.CoroutineContext but kotlin.coroutines.experimental.CoroutineContext was expected这是在错误之上,即kotlinx.coroutines.experimental的实现已经过时,然而,如果没有使用Android Studio的intellisense的experimental,我找不到对库的引用。

要解决这些库问题并允许我继续学习本教程,我需要做些什么?
发布于 2019-04-22 02:01:39
据我所知,以下是解决这些问题的推荐方法。
为了尝试解决这些问题,我从Gradle脚本中的错误开始,看看这是否可以解决代码中的依赖关系。我确实找到了this post,我仍然不完全相信它是最好的解决方案,但仅仅遵循顶部答案中的前几个建议确实解决了我的大多数问题。
为了清楚起见,我更改了以下内容:
dependencies Gradle块最后一行中的变量,使其具有硬编码的版本号(我做了kotlinx.coroutines repo中找到的最新版本号)。如果可能的话,我希望这是自动生成的,因为教程从相同的Gradle文件底部删除了kotlin块,并同步了我的Gradle projectAlt+Enter‘将任何缺失的库重新添加到existence中
如果更新Gradle,您可能还会发现有必要在android块内的Module: app Gradle文件中包含以下内容:
packagingOptions {
exclude 'META-INF/*'
}(对于某些人来说,*可能有些过头了,但是this post的建议并没有完全消除我的所有错误。)
在所有这些之后,我能够重新构建SDK,它加载到我的手机上,没有任何错误。
https://stackoverflow.com/questions/55785325
复制相似问题