当前位置: 首页 > 知识库问答 >
问题:

Kotlin中的“更喜欢在类上运行dagger处理器”

杜成和
2023-03-14

每当我对kotlin类进行注入(顺便说一句,我有一个包含kotlin和Java的混合android项目)时,我都会在构建中得到这条注释。

例如,在这个gradle任务:compilestagingdebugjavawithjavac(StagingDebug是我的构建变体)之后,我会得到以下消息:

“注意:正在为Com.PackageNameXxx.CourseDiscoveryMapFragment生成MembersInjector或Factory.更喜欢在该类上运行dagger处理器.”

我的CourseDiscoveryMapFragment代码可以在这里看到:

class CourseDiscoveryMapFragment : Fragment(){

    @Inject
    lateinit var presenter: CourseDiscoveryMapPresenter

    lateinit var mapView: MapView

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

        val view = inflater.inflate(R.layout.fragment_discovery_map, container, false)

        MapsInitializer.initialize(activity)

        mapView = view.mapView
        mapView.onCreate(savedInstanceState?.getBundle(BUNDLE_KEY_MAP_STATE))

        (activity as BaseActivity)
                .activityComponent.inject(this)
}

而我的ActivityComponent是:

@ActivityScope
@Subcomponent(modules = ActivityModule.class)
public interface ActivityComponent {

    void inject(BaseActivity baseActivity);

    void inject(CourseDiscoveryMapFragment fragment);

    //Exposed to sub-graphs.
    Activity activity();
}

所以,我有匕首组件和模块写在Java,而匕首注射在Kotlin。

这是我该担心的吗?

谢谢.

共有1个答案

束新
2023-03-14

恐怕你不能。为什么不用Kotlin编写依赖模块呢?

要在Java中编写依赖项模块,您需要这样配置您的Gradle脚本:

 compile 'com.google.dagger:dagger:2.8'
 apt 'com.google.dagger:dagger-compiler:2.8'

但是,要用Kotlin编写依赖项模块,您应该这样配置您的Gradle脚本:

compile 'com.google.dagger:dagger:2.8' 
kapt 'com.google.dagger:dagger-compiler:2.8'

dagger在编译过程中需要注释处理工具来生成依赖代码。所以我猜你只需要根据正确的语言使用正确的APT(注释处理工具)就可以了。

 类似资料:
  • 每当我在kotlin类中注入时,我都会在构建中得到这个注释(顺便说一句,我有一个混合了kotlin和java的Android项目)。 例如,在这个gradle任务:(StagingDebug是我的构建变体)之后,我得到以下消息: "注意:生成成员注射器或工厂com.package名称XXX. CourseDiscoveryMapFragment.更喜欢在该类上运行匕首处理器。" 我的CourseD

  • 问题内容: 是否可以在一个查询中将多个SQL LIKE通配符串在一起-像这样? 目的是查找同时包含通配符但没有特定顺序的记录。 问题答案: 正确的SQL语法是:

  • 喜欢资讯 取消喜欢资讯 资讯喜欢列表 喜欢资讯 POST /news/{news}/likes Response Headers Status: 201 Created 取消喜欢资讯 DELETE /news/{news}/likes Response Headers Status: 204 No Content 资讯喜欢列表 GET /news/{news}/likes Respons

  • 点喜欢 取消喜欢 喜欢的人列表 点喜欢 POST /feeds/:feed/like Response Status: 201 Created { "message": [ "操作成功" ] } 通知类型 { "channel": "feed:digg", // 通知关键字 "target": 325, // 动态id "content": "@2222 点喜欢了

  • 本文向大家介绍使用 CSS 预处理器吗?喜欢哪个?相关面试题,主要包含被问及使用 CSS 预处理器吗?喜欢哪个?时的应答技巧和注意事项,需要的朋友参考一下 SASS

  • 问题内容: 我正在使用elasticsearch从json文件过滤和搜索,并且我是这项技术的新手。所以我有点困惑如何在elasticsearch中写像查询一样的东西。 这是mysql查询。如何在Elasticsearch中编写此查询?我正在使用Elasticsearch 0.90.7版。 问题答案: 如果可能的话,我强烈建议您更新ElasticSearch版本,自0.9.x版本以来发生了重大变化。