Java MainActivity上出现空指针异常错误,无法启动整个应用程序
我正在做一个应用程序,其中有一个登录页面,用户将被提示输入他们的用户名和密码。 之后,它将把输入的用户名带到另一个显示欢迎的新页面。 在此页面中,它将显示用户可以选择查看的图表类别列表。 然而,当我试图运行它时,应用程序一直崩溃。 我运行调试,它说这是一个NullPointerException 日志cat显示如上所示:Java MainActivity上出现空指针异常错误,无法启动整个应用程序,java,android,eclipse,nullpointerexception,Java,Android,Eclipse,Nullpointerexception,我正在做一个应用程序,其中有一个登录页面,用户将被提示输入他们的用户名和密码。 之后,它将把输入的用户名带到另一个显示欢迎的新页面。 在此页面中,它将显示用户可以选择查看的图表类别列表。 然而,当我试图运行它时,应用程序一直崩溃。 我运行调试,它说这是一个NullPointerException 日志cat显示如上所示: 07-02 10:25:23.826: E/AndroidRuntime(1173): FATAL EXCEPTION: main 07-02 10:25:23.826: E/
07-02 10:25:23.826: E/AndroidRuntime(1173): FATAL EXCEPTION: main
07-02 10:25:23.826: E/AndroidRuntime(1173): Process: com.nyp.exploregowhere, PID: 1173
07-02 10:25:23.826: E/AndroidRuntime(1173): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nyp.exploregowhere/com.nyp.exploregowhere.MainActivity}: java.lang.NullPointerException
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.app.ActivityThread.access$700(ActivityThread.java:135)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.os.Handler.dispatchMessage(Handler.java:102)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.os.Looper.loop(Looper.java:137)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.app.ActivityThread.main(ActivityThread.java:4998)
07-02 10:25:23.826: E/AndroidRuntime(1173): at java.lang.reflect.Method.invokeNative(Native Method)
07-02 10:25:23.826: E/AndroidRuntime(1173): at java.lang.reflect.Method.invoke(Method.java:515)
07-02 10:25:23.826: E/AndroidRuntime(1173): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
07-02 10:25:23.826: E/AndroidRuntime(1173): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
07-02 10:25:23.826: E/AndroidRuntime(1173): at dalvik.system.NativeStart.main(Native Method)
07-02 10:25:23.826: E/AndroidRuntime(1173): Caused by: java.lang.NullPointerException
07-02 10:25:23.826: E/AndroidRuntime(1173): at com.nyp.exploregowhere.MainActivity.onCreate(MainActivity.java:26)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.app.Activity.performCreate(Activity.java:5243)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
07-02 10:25:23.826: E/AndroidRuntime(1173): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
这是我的主要活动:
@Override
protected void onCreate(Bundle savedInstanceState)
{
userNameET = (EditText)findViewById(R.id.userNameET);
LoginBT = (Button)findViewById(R.id.LoginBT);
LoginBT.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent myIntent = new Intent(MainActivity.this,LoginActivity.class);
myIntent.putExtra("username", userNameET.getText().toString());
startActivityForResult(myIntent,LOGIN_ACTIVITY_RESULT_CODE);
}
});
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
更改后的新错误代码:
07-02 11:15:50.836: E/AndroidRuntime(1444): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
07-02 11:15:50.836: E/AndroidRuntime(1444): at android.app.ActivityThread.access$700(ActivityThread.java:135)
07-02 11:15:50.836: E/AndroidRuntime(1444): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
07-02 11:15:50.836: E/AndroidRuntime(1444): at android.os.Handler.dispatchMessage(Handler.java:102)
07-02 11:15:50.836: E/AndroidRuntime(1444): at android.os.Looper.loop(Looper.java:137)
07-02 11:15:50.836: E/AndroidRuntime(1444): at android.app.ActivityThread.main(ActivityThread.java:4998)
07-02 11:15:50.836: E/AndroidRuntime(1444): at java.lang.reflect.Method.invokeNative(Native Method)
07-02 11:15:50.836: E/AndroidRuntime(1444): at java.lang.reflect.Method.invoke(Method.java:515)
07-02 11:15:50.836: E/AndroidRuntime(1444): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
07-02 11:15:50.836: E/AndroidRuntime(1444): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
07-02 11:15:50.836: E/AndroidRuntime(1444): at dalvik.system.NativeStart.main(Native Method)
需要在onCreate中首先调用super.onCreate和setContentView
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userNameET = (EditText)findViewById(R.id.userNameET);
LoginBT = (Button)findViewById(R.id.LoginBT);
LoginBT.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent myIntent = new Intent(MainActivity.this,LoginActivity.class);
myIntent.putExtra("username", userNameET.getText().toString());
startActivityForResult(myIntent,LOGIN_ACTIVITY_RESULT_CODE);
}
});
}
请在onCreate方法中添加以下行
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
它假定相应的xml文件是activity_main.xml。
确保在上面添加此语句
userNameET = (EditText)findViewById(R.id.userNameET);
如果出现任何错误,请进行评论。第26行似乎发生了空指针异常。这与您发布的代码中的哪一行相对应?这一行是Intent myIntent=newintentmainactivity;有一个错误显示:构造函数Intentnew View.OnClickListener{},类是未定义的,非常正确。抱歉,我忘了我的意图在听者之内。我已经用一个更好的解决方案编辑了答案。你是说绿色突出显示的解决方案吗?即显示Intent myIntent=newintentgetbasecontext,LoginActivity.class;您是在尝试使用getBaseContext时出错,还是它仍在崩溃?