Dagger2错误:Kotlin:未解决的参考:DaggerSOMETHINGComponent

时间:2017-06-07 12:34:38

标签: java android intellij-idea kotlin dagger-2

源代码

我正在建立一个Kotlin和Dagger2的gradle项目,该项目在半年前在macOS中运行良好:

GitHub:Kotlin-Tutorials13

你可以通过

获得它
git clone https://github.com/enbandari/Kotlin-Tutorials.git
cd Kotlin-Tutorials/code/Kt13

您可以在IntelliJ IDEA中打开它

建设环境

我的建筑环境如下:

  • IntelliJ IDEA 2017.1.3
  • JRE:1.8.0_112-release-736-b21 amd64
  • JVM:JetBrains s.r.o
  • 的OpenJDK 64位服务器VM
  • Windows 10 10.0

构建结果

它解决了一个错误:

C:\Users\xiang\IdeaProjects\Kotlin-Tutorials-master\code\Kt13\src\main\kotlin\net\println\kt13\Service.kt
Error:(3, 25) Kotlin: Unresolved reference: DaggerRESTFulComponent
Error:(19, 9) Kotlin: Unresolved reference: DaggerRESTFulComponent

反编译

所以,我反编译RESTFulComponent.class

它的源文件是RESTFulComponent.kt

package net.println.kt13

import dagger.Component
import net.println.kt13.module.RetrofitModule
import retrofit2.Retrofit
import javax.inject.Singleton

/**
 * Created by benny on 12/11/16.
 */
@Singleton
@Component(modules = arrayOf(RetrofitModule::class))
interface RESTFulComponent {
    fun retrofit(): Retrofit
}

反编译RESTFulComponent.class我们得到

// IntelliJ API Decompiler stub source generated from a class file
// Implementation of methods is not available

package net.println.kt13.module

@dagger.Module public final class RxAdapterModule public constructor() {
    @javax.inject.Singleton @dagger.Provides public final fun adapter(): retrofit2.CallAdapter.Factory { /* compiled code */ }
}

原因

匕首注释的错误结果无效。

如何解决此错误?

1 个答案:

答案 0 :(得分:2)

错误操作

我使用 Ctrl + F9 进行编译,出现此错误。

正确的操作

我们应点击查看 - > 工具Windows - > Gradle 打开 Gradle项目窗口

然后点击任务 - > 构建 - >的构建

right build

原因

Ctrl + F9 没有调用<form ngNativeValidate class="form-horizontal" (ngSubmit)="onSubmit()"> ,我们应该在 Gradle项目窗口中使用gradle build