首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为房间实现创建新的ViewModel时类型不匹配- kotlinx.coroutines从1.3起废弃

为房间实现创建新的ViewModel时类型不匹配- kotlinx.coroutines从1.3起废弃
EN

Stack Overflow用户
提问于 2019-04-22 02:01:39
回答 1查看 318关注 0票数 0

我正在构建一个应用程序,它将严重依赖于用户数据,并计划使用Room来帮助管理和存储他们的信息。然而,在学习教程的过程中,我遇到了一些版本控制问题,我在自己解决这些问题时遇到了麻烦。

因为我对Android开发和使用Room都是相当陌生的,所以我一直在遵循这个教程:Android Room with a View - Kotlin

当我更新我的Gradle文件时,我第一次注意到在步骤3中可能有一些问题。我在dependencies块的最后两行遇到了以下错误:

代码语言:javascript
复制
Library should be updated to be compatible with Kotlin 1.3

我对此感到困惑,因为教程使用了某种类型的变量来确定库版本。我在这一点上运行了这个应用程序,它似乎工作得很好,所以我继续。

当我到达步骤9时,我还遇到了其他错误,这些错误现在阻止了构建的完成:

代码语言:javascript
复制
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,我找不到对库的引用。

要解决这些库问题并允许我继续学习本教程,我需要做些什么?

EN

回答 1

Stack Overflow用户

发布于 2019-04-22 02:01:39

据我所知,以下是解决这些问题的推荐方法。

为了尝试解决这些问题,我从Gradle脚本中的错误开始,看看这是否可以解决代码中的依赖关系。我确实找到了this post,我仍然不完全相信它是最好的解决方案,但仅仅遵循顶部答案中的前几个建议确实解决了我的大多数问题。

为了清楚起见,我更改了以下内容:

  1. 更改了dependencies Gradle块最后一行中的变量,使其具有硬编码的版本号(我做了kotlinx.coroutines repo中找到的最新版本号)。如果可能的话,我希望这是自动生成的,因为教程从相同的Gradle文件底部删除了kotlin块,并同步了我的Gradle project
  2. Update Kotlin和Gradle ( Android Studio问我,你可能不会依赖你的versions)
  3. Manually从代码中删除问题库,并且Alt+Enter‘将任何缺失的库重新添加到existence

如果更新Gradle,您可能还会发现有必要在android块内的Module: app Gradle文件中包含以下内容:

代码语言:javascript
复制
packagingOptions {
    exclude 'META-INF/*'
}

(对于某些人来说,*可能有些过头了,但是this post的建议并没有完全消除我的所有错误。)

在所有这些之后,我能够重新构建SDK,它加载到我的手机上,没有任何错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55785325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档