Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android &引用;更愿意在该类上运行dagger处理器;在科特林_Android_Kotlin_Dagger - Fatal编程技术网

Android &引用;更愿意在该类上运行dagger处理器;在科特林

Android &引用;更愿意在该类上运行dagger处理器;在科特林,android,kotlin,dagger,Android,Kotlin,Dagger,每当我对kotlin类进行注入时,我都会在构建中得到这个注释(顺便说一句,我有一个混合了kotlin和java的android项目) 例如,在这个gradle任务:compileStagingDebugJavaWithJavac(StagingDebug是我的构建变体)之后,我得到以下消息: “注意:为com.packageNameXXX.CourseDiscoveryMapFragment生成MembersInjector或Factory。请改为在该类上运行dagger处理器。” 我的课程发现

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

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

“注意:为com.packageNameXXX.CourseDiscoveryMapFragment生成MembersInjector或Factory。请改为在该类上运行dagger处理器。”

我的课程发现片段代码可以在这里看到:

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)
}
我的活动组件是:

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

    void inject(BaseActivity baseActivity);

    void inject(CourseDiscoveryMapFragment fragment);

    //Exposed to sub-graphs.
    Activity activity();
}
所以,我用Java编写了dagger组件和模块,同时用Kotlin编写了dagger注入

这是我应该担心的事情吗


多谢各位

恐怕你不能。为什么不在Kotlin中编写依赖模块

要用java编写依赖模块,您需要以以下方式配置Gradle脚本:

但是,要在Kotlin中编写依赖模块,您应该以以下方式配置Gradle脚本:


dagger需要注释处理工具在编译过程中生成依赖代码。因此,我想您只需要根据正确的语言使用正确的APT(注释处理工具)。

您能发布整个错误/警告以及与之相关的代码吗?问题需要更多细节。你基本上是把谷歌查询当作一个问题来写的。@marcospereira重新编辑过!谢谢嘿,你有没有找到解决方案或者警告的原因?答案如下:
 compile 'com.google.dagger:dagger:2.8'
 apt 'com.google.dagger:dagger-compiler:2.8'
compile 'com.google.dagger:dagger:2.8' 
kapt 'com.google.dagger:dagger-compiler:2.8'