Dagger 2 - error: @Provides methods cannot be static

Dagger 2 - error: @Provides methods cannot be static

我刚刚将 Dagger 添加到我的 Android 项目中。我已经将我的一些 类 重新设计为依赖注入模式,并在它们的构造函数上使用了 @Inject 注释。我还创建了相应的模块和组件。当我尝试编译它时,模块中的一些 @Provides 方法给我这个错误:

error: @Provides methods cannot be static

所有给我这个错误的方法都是@Singleton,静态的并且没有参数。我也有一些 @Provides 方法,它们是 @Singleton 和静态的,但至少有一个参数,并且不会给出任何错误。

有谁知道这些错误的原因是什么?根据官方用户指南,Dagger 2 应该支持静态 @Provides 方法。

@Module
public class DataModule {

@Provides
@Singleton
static MessageDatabaseAdapter provideMessageDatabaseAdapter() { //this method gives error
    return new MessageDatabaseAdapter();
}

@Provides
@Singleton //this method seems OK
static MessageDataSource provideMessageDataSource(MessageDatabaseAdapter databaseAdapter) {
    return new MessageDataSource(databaseAdapter);
}

@Provides
@Singleton
static ContactsDataSource provideContactsDataSource() { //this method also gives error
    return new ContactsDataSource();
}

}

问题是我在我的项目中添加了旧版本的 Dagger。在我的例子中,它是 2.0,但在我写这篇文章时,最新版本是 2.17,上面提到的用户指南就是为此而制作的。