【问题标题】:'java.lang.Object javax.inject.Provider.get()' on a null object reference空对象引用上的“java.lang.Object javax.inject.Provider.get()”
【发布时间】:2021-10-24 18:01:12
【问题描述】:

为什么下面的代码模板会出现空指针异常?我做错了什么或留下来做什么?

注释

@Qualifier
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {}

模块

@Module
@InstallIn(ActivityComponent.class)
public interface MyModule {
   @Provide
   @MyAnnotation 
   public static ConfirmationOverlay provideConfirmation() {
       return new ConfirmationOverlay();
   }
}

如下所示

@Inject @MyAnnotation  Provide<ConfirmationOverlay> confOverlay;

............


private void aMethod() {
   confOverlay.get(); ======> throws null pointer exception 
}

【问题讨论】:

    标签: java android nullpointerexception dagger


    【解决方案1】:

    我做出最好的猜测,因为您省略了调用 aMethod() 的位置。

    当 Hilt 在其 super.onCreate 中注入 Activity 成员时,我想您可能就在此之前调用了 aMethod()

    【讨论】:

    • 不,aMethod() 是为按钮操作事件调用的。显然 super.onCreate 在那之前被调用过一次。注入 ConfirmationOverlay 的 Activity 上捕获的按钮操作
    猜你喜欢
    • 2021-05-04
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    相关资源
    最近更新 更多