Ссылка NullReferenceException или Object, не установленная на экземпляр объекта, возникает, когда объект класса, который вы пытаетесь использовать, не создается. Например:
Предположим, что у вас есть класс с именем Student.
public class Student
{
private string FirstName;
private string LastName;
public string GetFullName()
{
return FirstName + LastName;
}
}
Теперь рассмотрим другой класс, в котором вы пытаетесь получить полное имя учащегося.
public class StudentInfo
{
public string GetStudentName()
{
Student s;
string fullname = s.GetFullName();
return fullname;
}
}
Как видно из вышеприведенного кода, оператор Student s - объявляет только переменную типа Student, обратите внимание, что класс Student не создается в этой точке. Следовательно, когда выполняется выполнение инструкции s.GetFullName (), она выкинет исключение NullReferenceException.
Я не уверен на 100%, но вы вызываете findviewbyid в инициализации класса. Я думаю, что этот код вызывается перед методом onCreate, поэтому вид не может быть найден. Инициализация слушателей в методе oncreate должна работать.
нет проблем с вашими кодами, по праву все должно работать в соответствии с нормальным.
Самая распространенная ошибка столкновения с методом null через findViewById()
- это когда вы забыли позвонить setContentView()
или вызвали это для неправильной компоновки.
Я предлагаю очистить ваш проект и попробовать еще раз !!!!
У меня были те же проблемы, но после очистки моего проекта и запуска его снова он отлично работает.