首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

kotlin使用Dagger2的过程全纪录

前言 Dagger2作为依赖注入神器,相信很多朋友都听说过它的大名。只不过它的有些概念,理解起来并不是那么清晰,并且在使用的过程中,也比较迷糊。...下面将详细介绍关于kotlin使用Dagger2的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。...kotlin中配置Dagger2 在app模块的build.gradle文件中进行如下配置,关于kapt的相关知识。...使用@Component标记的接口,会在编译时自动生成一个Dagger+类名的实现类实现依赖注入。...Dagger2用法,毕竟有了依赖和注射器,只需要注入就可以了,我们来看一个最简单的Dagger2实例,只使用@Inject和@Component来完成注入。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kotlin使用 Dagger 会遇到的陷阱和优化方法

    本文将重点介绍如何 在 Kotlin使用 Dagger ,包括优化构建时间的 最佳实践 以及一些可能会遇到的问题。...Dagger 是通过 Java 的注解模型实现的,而 Kotlin 中注解的编写方式同 Java 的并不是一一对应的,这篇文章会重点介绍它们之间的不同之处,并且会介绍怎样轻松地将 DaggerKotlin...本文的写作灵感来自 Dagger issue 中的一些建议,这些建议直接代表了在 Kotlin使用 Dagger 的最佳实践和一些痛点。在此要感谢所有的 issue 贡献者。...中存在一个匹配该类型的实例,则可能会导致注入到错误的对象中。...泛型注入 Kotlin 使用通配符编译泛型使 Kotlin API 和 Java 能一起使用。当某个参数或者字段的类型为 泛型 时,会在 Java 代码中自动生成。

    1K30

    开发必须了解的10个Android库

    不过如果你的项目已经在使用JodaTime,建议换到ThreeTen,如果是新项目的haul,强烈建议使用ThreeTen。 Timber Timber是一个基于Andorid Log的log库。...当RxJava跟Kotlin结合的时候,两者的优点被一起放大,会让开发者爱不释手。...KTX改变了开发者使用Android API的方式,如果你的项目使用的是Kotlin,那么它应该成为你的核心库之一。 Dagger 没有Dagger的排行榜不完整。...关于Dagger,google有一个著名的咖啡机的例子可以了解一下,我之前也发过几篇分析的文章,可以了解一下Dagger2应用:接入Dagger2 Android应用:@Component和@ModuleDagger2...对于大型项目来说,开发者希望手工地去处理依赖注入,因为这不容易维护。Dagger通过注解帮开发者完成了这些事情。

    2.3K50

    手把手教你搭建android模块化项目框架(一)选择篇

    经典框架选取总模式:mvvm-databinding图片加载:glide事件总线:kotlin.flow或eventbus,本篇选用kotlin.flow撸出自己的事件总线线程调度:kotlin.CoroutineScope...动画等:lottie or svga or pag不过本篇教大家如何使用该框架功能。因为单一的工具并非框架重点功能。其他:core-ktx,lifecycle,androidx系列库等。...依赖注入:hilt(可选),依赖注入是否需要使用,取决于预估的项目规格大小,本篇抛砖引玉,会带入一点hilt的使用,不过并非重点,可酌情选取使用。...基础存储:mmkv(可选),由于room有一定的性能问题,所以性能优化后的部分常用键值对可以选用mmkv使用。bug采集:bugly 本篇接入,正式项目可选取合适自己的采集工具。埋点采集:同上。...: "com.google.dagger:dagger:2.44.2", daggerCompiler : "com.google.dagger

    60521

    简单几招提速 Kotlin Kapt编译

    应用Kotlin之后,涉及到注解的注解处理器依赖也会由annotationProcessor替换成kapt,和最初应用Kotlin一样,总会让人一种感觉,一番应用Kotlin和Kapt之后,编译耗时更长了...默认情况下,kapt注解处理任务并没有利用开启gradle的构建缓存,需要我们手动增加配置开启 开启方式:在项目的app module下的 build.gradle 文件增加如下代码 1 kapt { 2...开启方式: 对于注解依赖需要使用kapt显式声明 在gradle.properties文件中增加kapt.include.compile.classpath=false 注意: 该特性需 Kotlin...1.3.20 及以上 增量注解处理 Kotlin 自1.3.30引入了一个实验功能,即支持注解增量处理。...在v4.9.0版本增加了增量处理支持,对应的github commit为 https://github.com/bumptech/glide/commit/a16a1baa140c9b87b9a68a2a3b91047fd60ba5d8

    2.1K20

    Kotlin开发遇到问题汇总

    1. dagger2的@Named,无法使用Kotlin使用Dagger2的时候,因为用@Module标注的类里面有返回两个类型一样的方法,需要用@Named来分开标注,不然,会build的时候报错...在正常情况下,用@Named(''example1")来标注method1;用@Named("example2")来标注method2。...可是到了kotlin发现空指针,没有依赖成功。我又试了一下@Qualifier自定义一个注解。因为@Named也是依赖了@Qualifier来生成的。...java是这样子生成一个注解的 @Qualifier @Retention(RetentionPolicy.RUNTIME) @interface FS { } kotlin是这样子生成一个注解的 @Qualifier...解决方法: 然后在dagger2的issue里面提到@Named配合@Inject要这样子用@Inject @field:Named("example1"),同理你也可以用@field:FS来标记,也是成功的

    56530

    带你解析Dagger2

    Dagger2简介: Dagger2Dagger1的分支,由谷歌公司接手开发,目前的版本是2.0。Dagger2是受到AutoValue项目的启发。...Dagger2具有以下好处: 1) 依赖的注入和配置独立于组件之外,注入的对象在一个独立、耦合的地方初始化,这样在改变注入对象时,我们只需要修改对象的实现方法,而不用大改代码库。...使用 Dagger2 创建依赖对象,我们就不用手动初始化了。...个人认为 Dagger2 和 MVP 架构是比较不错的搭配,Activity 依赖的 Presenter 可以使用该DI框架直接生成,实现解耦,简单的使用方式如下: public class MainActivity...Dagger2注解解释: 接下来介绍Dagger2中的每一个概念: @Inject: 通常在需要依赖的地方使用这个注解。换句话说,你用它告诉Dagger这个类或者字段需要依赖注入。

    72440

    【错误记录】Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. The binary )

    版本到 1.7.10 降低 kotlin-stdlib-common-1.7.10.jar 版本 , 使得 Kotlin 1.5.0 版本的可以兼容该依赖库 ; 三、解决方案 ---- 方案一 : 提高...:kotlin-stdlib:1.5.0 -> 1.7.10 | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 | \--- org.jetbrains...BUILD SUCCESSFUL in 2s 1 actionable task: 1 executed 在 org.jetbrains.kotlin:kotlin-stdlib:1.5.0 -> 1.7.10...> 1.7.10 依赖 , 在该依赖库中使用了 org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 的依赖 , 但是在其它地方使用了 org.jetbrains.kotlin...force 强制指定依赖库 , 不管版本是多少 , 必须强制使用 org.jetbrains.kotlin:kotlin-stdlib-common:1.5.0 版本的依赖库 ; configurations.all

    7.9K31

    Android 11 Beta 版正式发布!以及众多面向开发者的重磅更新

    如果您使用的是 Pixel 2、3、3a 或 4 系列设备,请参加测试并获取 Android 11 Beta 的 OTA 更新。...Kotlin 协程是 Kotlin 语言的诸多强大功能之一,它可以让您更轻松地编写并发调用,同时获得更高的可读性。现在,我们正式推荐开发者使用协程。...很多用户一直对 Dagger 情有独钟,因此我们联合 Dagger 团队推出了 Hilt,这是基于 Dagger 的封装方案,且易于开发者使用。...今天,我们为大家带来 Jetpack Compose 开发者预览版 2,其中包含开发者们一直要求的诸多功能: 与 View 的互操作性 (开始在当前应用中混合使用 Composable 方法) (新!)...我们将在全球举办一系列线上活动,来和大家一起探讨 Android 11 的新内容、应用兼容性,以及现代化 Android 开发的基本知识和最佳实践。请前往 官方网站了解详情。

    1.7K50

    【错误记录】Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. ) 2

    版本到 1.7.10 降低 kotlin-stdlib-common-1.7.10.jar 版本 , 使得 Kotlin 1.5.0 版本的可以兼容该依赖库 ; 三、解决方案 ---- 方案一 : 提高...依赖库版本 使用kotlin-stdlib-common-1.7.10.jar 依赖库版本太高 , 降低该依赖库版本 ; 首先分析该依赖库是如何导入进来的 , 在模块的构建脚本中 , 没有直接导入该依赖库...:kotlin-stdlib:1.5.0 -> 1.7.10 | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 | \--- org.jetbrains...force 强制指定依赖库 , 不管版本是多少 , 必须强制使用 org.jetbrains.kotlin:kotlin-stdlib-common:1.5.0 版本的依赖库 ; configurations.all...{ resolutionStrategy { force org.jetbrains.kotlin:kotlin-stdlib-common:1.5.0 } }

    3.9K30
    领券