Я выполнил поиск, и, похоже, это зависит от того, что вызывает это. Хотя, кто-то, кто действительно это понимает, вполне может не согласиться.Android App Crash NullPointerException
Мои кнопки, идущие от моего главного экрана к другим действиям, работают нормально, единственное отличие от того, что не работает, это то, что он на самом деле вытягивает класс/переменную из другого .java-файла, и поэтому я уверен, что я не реализовали его правильно.
Это класс Singleton:
GLOBAL.JAVA
//Constructor
//
protected Global() {
getInstance();
}
//Singleton Method
//
public static Global getInstance() {
if(instance == null) {
initialize();
instance = new Global();
}
return instance;
}
У меня есть несколько (статический) класса структур (я использую термин структуры, потому что программы, прежде всего, в C++, и мне это что они есть), которые помещаются внутри глобального файла/класса, наряду с этим массивом, который содержит все данные для программы static questionStruct[] questions = new questionStruct[TOTAL_QUESTIONS];
initialize();
функция вызывается из getInstance()
(Singleton метод в) просто заполняет данные в массив questionStruct[]
.
У меня есть метод, чтобы вернуть строку
public static String getQ(int q){
return questions[q].q;
}
В файле .java, который вызывается с нажатой кнопкой, я placeData();
просто чтобы проверить вещи, и в этой функции:
public void placeData() {
String testString = ("Testing Text: " + Global.getQ(3));
TextView Q = (TextView) findViewById(R.id.testingText);
Q.setText(testString);
}
и, наконец ... надеюсь ... TextView, где он должен отображаться в файле XML:
<TextView
android:id="@+id/testingText"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
И вот моя официальная ошибка. Я считаю, что это индикатор сбоя, что происходит только тогда, когда я нажимаю кнопку, чтобы инициализировать эту операцию.
java.lang.RuntimeException: Unable to start activity ComponentInfo{godwin.com.study/godwin.com.study.practice}: java.lang.NullPointerException: Attempt to read from field 'java.lang.String godwin.com.study.Global$questionStruct.q' on a null object reference
Мысли ???
EDIT:
Классы (например, структуры в C++) внутри Global.Java
class answerStruct
{
String a;
boolean status;
}
//Structure for Questions
//
class questionStruct
{
String q;
answerStruct[] answer = new answerStruct[TOTAL_ANSWERS];
}
"инициализация()" функции:
public static void initialize() {
questions[0].q = "Question # 1";
questions[0].answer[0].a = "Q1A1";
questions[0].answer[0].status = true;
questions[0].answer[1].a = "Q1A2";
questions[0].answer[1].status = false;
...And so on...Forever
}
Где находится 'questionStruct'? – iRuth
Что такое 'questions [q] .q;'? Я не думаю, что вам нужен последний .q, просто 'вопросы [q]'? Также могут помочь полные номера трасс и строк. –
Понятно, что проблема в том, что когда вы вызываете 'getQ' для некоторого значения' q', 'questions [q]' is 'null'. Это указывает на проблему в методе 'initialize()', но невозможно сказать, как исправить это, если вы не разместите код для этого метода. –