如何使用 Hilt 将类注入到 Application 类中?

Kev*_*der 5 android dependency-injection dagger-hilt

我正在尝试在我的 Android 应用程序中加入 Hilt。

我的设置目前如下所示:

App Gradle 模块中的应用:

@HiltAndroidApp
public class App extends Application {

@Inject DatabaseDriver driver;

@Override
public void onCreate() {
    super.onCreate();
    driver.initialize(this);
   }
}
Run Code Online (Sandbox Code Playgroud)

我在 App Gradle 模块中的界面:

@Singleton
public interface DatabaseDriver {
   void initialize(Context context);
}
Run Code Online (Sandbox Code Playgroud)

然后,我在 Database Gradle 模块中实现了DatabaseDriver,其中还声明了 Hilt 模块。

解析数据库驱动程序

@Singleton
class ParseDatabaseDriver : DatabaseDriver {
    override fun initialize(context: Context) {

       registerSubClasses2()

       Parse.initialize(
           Parse.Configuration.Builder(context)
               .applicationId(context.getString(R.string.server_app_id))
            .clientKey(context.getString(R.string.server_client_key))
            .server(context.getString(R.string.server_url))
            .build()
    )

    val parseUser = ParseUser.getCurrentUser()
    val parseACL = if (parseUser == null) ParseACL() else ParseACL(ParseUser.getCurrentUser())
    parseACL.publicReadAccess = true
    parseACL.publicWriteAccess = true
    ParseACL.setDefaultACL(parseACL, true)

    if (parseUser != null) ParseUser.getCurrentUser().acl = parseACL
   }
}
Run Code Online (Sandbox Code Playgroud)

刀柄模块

@Module
@InstallIn(SingletonComponent::class)
interface ParseDatabaseDriverModule {
   @Binds
   fun bindsDatabaseDriver(databaseDriverImpl: ParseDatabaseDriver): DatabaseDriver
}
Run Code Online (Sandbox Code Playgroud)

当尝试构建这个时,我收到以下错误

如果没有 @Provides 注释的方法,则无法提供 DatabaseDriver

当我将所需内容移动到同一个 Gradle 模块中时,绑定似乎起作用了,但我不想这样做,因为我试图将域与持久层分开。

我不知道该怎么办..

请注意,App 模块是用 Java 编写的,DB 模块是用 Kotlin 编写的。