Dagger 2 错误:解决“无法提供”问题
)问题摘要
Dagger 2在编译时可能会出现以下错误项目:
error: com.example.MyDependency cannot be provided without an @Inject constructor or from an @Provides-annotated method.
此错误表明 Dagger 缺乏创建或提供指定依赖项所需的信息。
了解问题
Dagger需要一种机制来提供或创建需要注入的对象。默认情况下,它期望依赖项具有 @Inject 注释的构造函数或使用 @Provides 注释的模块中的方法。
解决方案
有两种主要方法解决此问题:
1.添加@Inject注解的构造函数:
在依赖类的构造函数中添加@Inject注解。例如:
class MyDependency { @Inject MyDependency() { /**/ } }
2。在模块中创建@Provides注解的方法:
创建一个模块类并向其添加一个用@Provides注解的方法。此方法将创建或绑定所需的依赖项。例如:
@Module class MyModule { @Provides MyDependency provideMyDependency() { return new MyDependency(); } }
其他注意事项
以上是Dagger 2 错误:如何解决'无法提供”?的详细内容。更多信息请关注PHP中文网其他相关文章!