Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

После компиляции не запускается приложение!

ALEX Мишачев Ученик (91), на голосовании 6 месяцев назад
Выдаёт ошибку Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.EditText.findViewById(int)' on a null object reference
at com.example.workwithactivitesinstant.MainActivity.onCreate(MainActivity.java:26)

В программе этот виджет прописан так: editTextEngine.findViewById( R.id .editTextEngeine);
Айди у виджета editTextEngeine
И всё таки он выдаёт ошибку якобы не существует виджета с таким айди
Голосование за лучший ответ
Сухачев Мудрец (12961) 7 месяцев назад
Ошибка NullPointerException говорит о том, что вы пытаетесь обратиться к объекту, который является null. В данном случае, кажется, будет уместно проверить, корректно ли вы вызываете findViewById().

Вызов метода findViewById() внутри MainActivity обычно происходит следующим образом:
 EditText editTextEngine = (EditText) findViewById(R.id.editTextEngeine); 

В данном случае вызов findViewById() происходит от ссылки на EditText, которая вероятно еще не была инициализирована (editTextEngine), из-за этого и возникает NullPointerException.

Убедитесь, что вы вызываете метод findViewById() на правильном объекте (обычно это Activity или View), и что идентификатор editTextEngeine действительно существует в вашем layout файле.
ALEX МишачевУченик (91) 7 месяцев назад
Если бы он не существовал то IDE сразу выделил бы это ошибкой
Сухачев Мудрец (12961) ALEX Мишачев, Ошибка NullPointerException говорит о том, что вы пытаетесь обратиться к объекту, который является null. В коде editTextEngine.findViewById(R.id .editTextEngeine);, метод findViewById() вызывается от editTextEngine, что выглядит необычно. Обычно этот метод вызывается из активности или фрагмента. Если editTextEngine еще не был инициализирован, возникает ошибка NullPointerException. Убедитесь, что вы правильно инициализируете editTextEngine.
ALEX МишачевУченик (91) 7 месяцев назад
Забыл сказать! Перед методом onCreate есть EditText editTextEngine;
Находится внутри класса если что
Сухачев Мудрец (12961) ALEX Мишачев, Если вы уже объявили EditText editTextEngine; вне метода onCreate(), то проблема, как правило, не в объявлении, но в присвоении. Есть вероятность, что присвоение editTextEngine происходит неправильно или слишком поздно. Убедитесь, что присвоение editTextEngine = (EditText) findViewById(R.id.editTextEngine); находится внутри метода onCreate() и после setContentView(). Если findViewById() вызывается до setContentView(), может возникнуть NullPointerException, поскольку в этот момент ещё не создана вся иерархия view.
ALEX МишачевУченик (91) 7 месяцев назад
setContentView() не используется
Сухачев Мудрец (12961) ALEX Мишачев, Если вы не используете setContentView(), это может вызвать проблемы. Метод нужен для установки layout для активности. Без его вызова не создается иерархии views, в которой Android мог бы искать при выполнении findViewById(). Если вы работаете с custom view или fragment, убедитесь, что вызываете findViewById() из правильного контекста. В fragment нужно вызывать view.findViewById(R.id.your_view), где view - корневой view fragment.
Zebra Zebrov Ученик (168) 7 месяцев назад
Позвони соседям в час ночи они помогут.(по статистике в этот момент соседи самые добрые и отзывчивые особенно после тяжолой работы)
Похожие вопросы