【问题标题】:Dagger Hilt abstract class with types带有类型的 Dagger Hilt 抽象类
【发布时间】:2020-07-15 06:54:13
【问题描述】:

大家好,我正在尝试使用 Dagger-Hilt,我想知道如何实现下面的代码?

@AndroidEntryPoint
abstract class BaseActivity <B : ViewDataBinding, VM : ViewModel> : IActivity<VM>, AppCompatActivity() {

   @Inject
   lateinit var someClass: SomeClass
}

Gradle 返回此错误:

 BaseActivity_GeneratedInjector.java:10: error: <identifier> expected
    topLevelClass = BaseActivity<B, VM>.class
                                        ^error: [Hilt]
  class java.lang.NullPointerException: java.lang.NullPointerException

这是生成的 Java 类:

@OriginatingElement(
    topLevelClass = BaseActivity<B, VM>.class
)
@GeneratedEntryPoint
@InstallIn(ActivityComponent.class)
@Generated("dagger.hilt.android.processor.internal.androidentrypoint.InjectorEntryPointGenerator")
public interface BaseActivity_GeneratedInjector {
  void injectBaseActivity(BaseActivity baseActivity);
}

我们将不胜感激。

【问题讨论】:

    标签: android dagger-hilt


    【解决方案1】:

    据我了解,这是 Hilt 内部的错误。

    查看相关github问题:https://github.com/google/dagger/issues/2042

    您可以通过将@AndroidEntryPoint 从带参数的抽象类移动到不带类型参数的子类来解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 2023-03-26
      • 1970-01-01
      • 2020-10-27
      • 2021-08-30
      • 1970-01-01
      • 2018-02-17
      相关资源
      最近更新 更多