Dagger 2给出错误'...如果没有@ Provide-annotated方法'

时间:2016-06-25 10:01:36

标签: java android dependency-injection dagger-2

我正在尝试为dagger 2理解构建一个简单的android项目。我目前有组件

MyComponent.java

@Component(modules = {MyModule.class})
public interface MyComponent {
    MyModule provideModule();
}

MyModule.java

@Module
public class MyModule {
    @Provides
    Repo provideRepo(){
        return new Repo();
    }
}

Repo.java

public class Repo {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

我已将这些添加到build.gradle for app

apt 'com.google.dagger:dagger-compiler:2.2'
compile 'com.google.dagger:dagger:2.2'
provided 'javax.annotation:jsr250-api:1.0'

同样在项目的依赖项中我使用了这个

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

构建项目时,我收到此错误

Error:(10, 14) error: com.example.bharatkulratan.daggernotworking.MyModule cannot be provided without an @Inject constructor or from an @Provides-annotated method.

错误会读取缺少的@Provided注释但provideRepo() 方法已经具有@Provided的注释。我无法弄清楚缺失的部分。请帮忙。

1 个答案:

答案 0 :(得分:1)

删除此

man screen

并将其添加到其位置

MyModule provideModule();