Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MainActivity上出现空指针异常错误,无法启动整个应用程序_Java_Android_Eclipse_Nullpointerexception - Fatal编程技术网

Java MainActivity上出现空指针异常错误,无法启动整个应用程序

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/

我正在做一个应用程序,其中有一个登录页面,用户将被提示输入他们的用户名和密码。 之后,它将把输入的用户名带到另一个显示欢迎的新页面。 在此页面中,它将显示用户可以选择查看的图表类别列表。 然而,当我试图运行它时,应用程序一直崩溃。 我运行调试,它说这是一个NullPointerException

日志cat显示如上所示:

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时出错,还是它仍在崩溃?