其他分享
首页 > 其他分享> > android – 无法将null值注入类中

android – 无法将null值注入类中

作者:互联网

我有一个我想重用的片段.它的功能是相同的,只有布局改变

我正在使用roboguice将id注入视图中

我添加了这个视图,例如:

@Nullable
@InjectView(R.id.edtEventLocationAddress)
private EditText edtEventLocationAddress;

现在,在onCreateView方法中提供的给定布局中,此视图可能存在也可能不存在

这就是我把@Nullable放在上面的原因

但是,当我运行应用程序时,没有此视图的布局,我得到了

java.lang.NullPointerException: Can't inject null value into class 
com.myapp.CreateEventPageFragment.edtEventLocationAddress when field is not @Nullable

我需要做些什么来使roboguice允许我重用片段,只改变他们的观点?

解决方法:

一个迟到的答案,但以防万一其他人偶然发现这一点.

您可能正在使用android.support.annotation.Nullable或具有@Retention(RetentionPolicy.CLASS)(或RetentionPolicy.SOURCE)的类似注释.但是,您需要使用在运行时保留的@Nullable注释以供RoboGuice查找.例如.这个:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.FIELD, ElementType.METHOD,
    ElementType.PARAMETER,
    ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Nullable {}

标签:android,dependency-injection,android-fragments,roboguice
来源: https://codeday.me/bug/20190628/1320327.html