大屏幕设备上的NullPointerException

时间:2016-11-10 17:57:25

标签: java android nullpointerexception

当我在摩托罗拉Nexus 6上运行我的应用程序时,我得到NullPointerException.Problem使用一个TextView并在同一个文本上设置文本。我在网上看到了一些解决方案,但它们都没有为我工作。我猜问题是与JVM不同智能手机,或者我的片段的生命周期嵌套在活动中。

在小型设备上一切正常。

日志吼叫:

  java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com..data.models.entity.Email.getUsername()' on a null object reference
                                                     at com..presenter.view.fragment.ForgotPasswordFragmentComplete.onStart(ForgotPasswordFragmentComplete.java:84)

这是我的片段:

 @Bind(R.id.button_resend_email)
    AppCompatButton resendEmail;
    @Bind(R.id.resend_user_email)AutoResizeTextView resendEmailTxt;

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        DaggerForgotPasswordCompletedComponent.builder()
                .applicationComponent(
                        ((AndroidApplication) getActivity().getApplication()).getApplicationComponent())
                .forgotPasswordCompletedModule(new ForgotPasswordCompletedModule())
                .build()
                .inject(this);


    }

    @Override
    public void onStart() {
        super.onStart();

        realm = getRealm();
        RealmQuery<Email> query1 = realm.where(Email.class);
        Email result1 = query1.findFirst();

        resendEmailTxt = (AutoResizeTextView) getView().findViewById(R.id.resend_user_email) ;

        this.resendEmailTxt.setText(result1.getUsername());

    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        realm.close();


    }



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        return inflater.inflate(R.layout.fragment_forgot_password_fragment_complete, container, false);


    }


    @Override
    protected int getFragmentLayoutId() {
        return R.layout.fragment_forgot_password_fragment_complete;
    }

2 个答案:

答案 0 :(得分:1)

如果您获得nullPointerException,则可能表示您的result1变量尚未分配值。这意味着您的query1.findFirst()可能根本没有返回任何内容。

答案 1 :(得分:0)

尝试将代码从onStart()移至onResume()