美文网首页
kotlin [Dagger/MissingBinding] x

kotlin [Dagger/MissingBinding] x

作者: Chungo | 来源:发表于2018-12-07 12:18 被阅读0次

    在项目转kotlin的时候,使用dagger2遇到了上述问题。排查了一周,才把所有问题解决。在此做一个踩坑实践的记录。

    1,如果dagger2使用正确的话,还是出现了上诉错误。那么很有可能是kotlin和dagger2混合使用,注解编译器还不是很完善,明明java代码可以编译通过,转过来之后dagger2怎么也编译不通过。

    可供参考的问题一:
    错误: [Dagger/MissingBinding] xxxx cannot be provided without an @Inject constructor or an @Provides-annotated method.
    请检查一下 @Binds 和 @Provides 是否混合使用
    如图


    image.png

    解决办法,把 abstract 的module 抽取出来作为抽象类单独使用

    问题二:
    @Qualifier 引起编译不通过


    image.png

    如上,如果两个返回的是相同的接口。必须要有一个不能用@Qualifier限定。。
    解决方法:


    image.png

    如图,必须要有一个方法没有被qualifier修饰。或者把返回的接口替换成具体实现的类


    image.png

    注意:这里修改了之后,@Inject的地方也要做相应的改动

    以上,感恩新技术

    相关文章

      网友评论

          本文标题:kotlin [Dagger/MissingBinding] x

          本文链接:https://www.haomeiwen.com/subject/skqthqtx.html