Dagger 2 给出错误“...如果没有@Provides-annotated 方法就无法提供”
Dagger 2 giving error '...cannot be provided without an @Provides-annotated method'
我正在尝试构建一个简单的 android 项目来理解 Dagger 2。我目前有组件
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 应用
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
的注解。我无法找出缺失的部分。请帮忙。
删除这个
MyModule provideModule();
并将其添加到原处
Repo provideRepo();
我正在尝试构建一个简单的 android 项目来理解 Dagger 2。我目前有组件
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 应用
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
的注解。我无法找出缺失的部分。请帮忙。
删除这个
MyModule provideModule();
并将其添加到原处
Repo provideRepo();