今天项目出错了

错误提示 让我看Messages窗口 可是压根就找不到Messages
连View里面也找不到

开始以为是我系统原因 ,buid窗口的提示 找出错误的点太难了。。。
红彤彤一片 都是什么鬼
通过度娘 才知道 原来 Android studio 3.1以上 把Message窗口 与 buid 合并了
默认不会显示原来message的信息
如果想查看原来版本的message信息
只需要 打开下图这个开关

终于找到熟悉的message了 !
今天项目出错了

错误提示 让我看Messages窗口 可是压根就找不到Messages
连View里面也找不到

开始以为是我系统原因 ,buid窗口的提示 找出错误的点太难了。。。
红彤彤一片 都是什么鬼
通过度娘 才知道 原来 Android studio 3.1以上 把Message窗口 与 buid 合并了
默认不会显示原来message的信息
如果想查看原来版本的message信息
只需要 打开下图这个开关

终于找到熟悉的message了 !
i added kapt instead of annotationProcessor for kotlin. we dont need to keep annotationProcessor dependency. Also we have to add kotlin-plugin in gradle.
As we all know, it would be Very Bad to attempt to perform constructor injection on a Fragment.
有时候有这样的需求,需要在LiveData将变化的数据通知给观察者前,改变数据的类型;或者是返回一个不一样的LiveData。
Lifecycle-aware components生命周期感知组件执行操作,以响应另一个组件生命周期状态的更改,例如Activity和Fragment。这些组件可以帮助您生成更有组织、更容易维护的轻量级代码。
Room是Google在AndroidX中提供的一个ORM(Object Relational Mapping,对象关系映射)库。它是在SQLite上提供的一个抽象层,可以使用SQLite的全部功能,同时可以更好更便捷流畅地访问数据库。(关于AndroidX可以参考
LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与 MutableLiveData的概念与使用方式(但是会涉及到ViewMode的部分代码).
在前面的文章我们介绍了Dagger2 中的大部分注解的使用,接下来我们从源码角度分析下第一篇文章中例子的原理。
最近个人在尝试构建 Kotlin版本 的Android MVVM开发框架,在依赖注入框架的选型上,我最终选择了 Kodein 。这是一个非常轻量级的DI框架,相比于配置繁琐的Dagger(繁琐的配置也是导致Dagger学习成本一直居高不下的原因!),它的配置过程更清晰且简单,并且,这个库的源码也是 Kotlin 的。
添加inject后,通过编译生成的DaggerMainComponent类来导入,说明编译以后生成了一些类,那到底生成了什么类呢。 Module和Component又是什么,该怎么里理解 在这篇文章后里将一一讨论。
dagger android 学习(一):dagger基础使用 dagger android 学习(二):AndroidInjector的使用 dagger android 学习(三):ContributesAndroidInjector的进一步优化 dagger android 学习(四):基于dagger2的mvp架构