2016-11-10 2 views
-1

Когда я запускаю свое приложение на Motorola Nexus 6, я получаю NullPointerException.Проблема с одним TextView и настройкой текста на том же. Я видел некоторые решения в Интернете, но никто из них не работал на меня. Я думаю, проблема с JVM на разных смартфонах или с жизненным циклом моего фрагмента, который вложен в активность.NullPointerException на устройствах большего размера

Все работает отлично на небольших устройствах.

Вход ниже:

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

Не имеет смысла, чтобы это было связано с экраном. Как выглядит getRealm()? – zgc7009

+0

На Samsung Galaxy S4 все работает нормально. Он просто получает экземпляр Realm и инициализацию. –

ответ

1

Если вы nullPointerException это, вероятно, означает, что ваш result1 переменной не присвоено значение. Это означает, что ваш query1.findFirst() может вообще ничего не возвращать.

+0

query1, findFirst возвращает правильную вещь, уже проверяет, что с Log.And работает отлично на галактике s4. –

+0

@AnonimoAnonimus Исключение в вашем вопросе говорит иначе. – 4castle

+0

Проверьте ссылку [this] (http://stackoverflow.com/questions/31366061/app-crahes-in-different-devices), похоже, похожа на вашу проблему. – DarkCygnus

0

Попробуйте переместить код с onStart() по номеру onResume().

Смежные вопросы