Android 启动新活动时出现NullPointerException

Android 启动新活动时出现NullPointerException,android,text,android-activity,stringbuilder,Android,Text,Android Activity,Stringbuilder,当我尝试使用意图通过另一个活动打开此活动时,应用程序将关闭。事实上,我正在尝试制作一款类似测验的应用程序,它可以显示问题。 XML: 我的静态类: public class QAs { public static final int MAX_QAS = 3; public static String[] strAs; public static String[] strQs; QAs() { strQs = new String[3];

当我尝试使用意图通过另一个活动打开此活动时,应用程序将关闭。事实上,我正在尝试制作一款类似测验的应用程序,它可以显示问题。 XML:

我的静态类:

public class QAs { 

    public static final int MAX_QAS = 3; 
    public static String[] strAs; 
    public static String[] strQs; 

    QAs() { 

    strQs = new String[3]; 
    strAs = new String[3]; 
    strQs[0] = "What is a your name?"; 
    strAs[0] = "xyz"; 
    strQs[1] = "abcd?"; 
    strAs[1] = "keyword"; 
    strQs[2] = "abcd?"; 
    strAs[2] = "aabbccdd"; 
    } 
} 
以下是错误:

  Error :
09-07 17:52:29.226: W/dalvikvm(23855): threadid=1: thread exiting with uncaught exception (group=0x40ce0450)
09-07 17:52:29.226: E/AndroidRuntime(23855): FATAL EXCEPTION: main
09-07 17:52:29.226: E/AndroidRuntime(23855): java.lang.NullPointerException
09-07 17:52:29.226: E/AndroidRuntime(23855):    at com.ankur.interviewquestions.CQAct.getData(CQAct.java:50)
09-07 17:52:29.226: E/AndroidRuntime(23855):    at com.ankur.interviewquestions.CQAct.updateCounter(CQAct.java:44)
09-07 17:52:29.226: E/AndroidRuntime(23855):    at com.ankur.interviewquestions.CQAct.onClick(CQAct.java:65)
09-07 17:52:29.226: E/AndroidRuntime(23855):    at android.view.View.performClick(View.java:4129)
09-07 17:52:29.226: E/AndroidRuntime(23855):    at android.view.View$PerformClick.run(View.java:17143)
09-07 17:52:29.226: E/AndroidRuntime(23855):    at android.os.Handler.handleCallback(Handler.java:615)
09-07 17:52:29.226: E/AndroidRuntime(23855):    at android.os.Handler.dispatchMessage(Handler.java:92)
09-07 17:52:29.226: E/AndroidRuntime(23855):    at android.os.Looper.loop(Looper.java:137)
09-07 17:52:29.226: E/AndroidRuntime(23855):    at android.app.ActivityThread.main(ActivityThread.java:4802)

根据您的logcat输出,您在这一行(复杂得可笑)代码中得到了一个NullpointerException

String getData() {
    return new StringBuilder(String.valueOf(new StringBuilder(String.valueOf(new StringBuilder(String.valueOf(new StringBuilder(String.valueOf(new StringBuilder(String.valueOf("\n")).append("Question ").append(1 + this.m_iCurrIndex).append(":\n").toString())).append(QAs.strQs[this.m_iCurrIndex]).toString())).append("\n\n").toString())).append("Answer:\n").toString())).append(QAs.strAs[this.m_iCurrIndex]).toString() + "\n\n";
}
这就是启动此活动时应用程序崩溃的原因。这次事故与文本切换器无关

因此,请检查是否有任何变量为空。 例如:

在哪里

QAs.strQs[this.m_iCurrIndex]
来自哪里

更新:

您的问题是,静态类的构造函数从未被调用,因此您的数组是空的。 我建议您使用initialize方法来初始化阵列:

public static void initialize() {
    strQs = new String[3]; 
    strAs = new String[3]; 
    strQs[0] = "What is a your name?"; 
    strAs[0] = "xyz"; 
    strQs[1] = "abcd?"; 
    strAs[1] = "keyword"; 
    strQs[2] = "abcd?"; 
    strAs[2] = "aabbccdd"; 
}
然后,在活动中调用getData()之前(例如在onCreate()中),调用:


发布错误您的gettingNull指针异常通常对初学者来说是由两个静态数组strq和stra组成的类。
public class QAs{public static final int MAX_QAs=3;public static String[]strAs;public static String[]strQs;QAs(){strQs=new String[3];strAs=new String[3];strQs[0]=“您的名字是什么?”;strAs[0]=“xyz”;strQs[1]=“abcd?”;strAs[1]=“关键字”;strQs[2]=“abcd?”;strAs[2]=“aabbccdd”;}}
Hi.。在屏幕下方的某些视图文本中,是否可以滚动它?
QAs.strQs[this.m_iCurrIndex]
public static void initialize() {
    strQs = new String[3]; 
    strAs = new String[3]; 
    strQs[0] = "What is a your name?"; 
    strAs[0] = "xyz"; 
    strQs[1] = "abcd?"; 
    strAs[1] = "keyword"; 
    strQs[2] = "abcd?"; 
    strAs[2] = "aabbccdd"; 
}
QAs.initialize();