无法在android中启动活动

无法在android中启动活动,android,android-activity,login,Android,Android Activity,Login,这是我得到的错误。。我要参加面试。。n我需要显示此应用。。但是得到错误。。请帮忙。。应用程序在一小时前流畅地运行。。我试图把注销按钮的主要活动回来的登录活动,但失去了登录按钮的功能本身 01-18 11:59:14.938 7321-7321/info.androidhive.materialdesign E/AndroidRuntime: FATAL EXCEPTION: main

这是我得到的错误。。我要参加面试。。n我需要显示此应用。。但是得到错误。。请帮忙。。应用程序在一小时前流畅地运行。。我试图把注销按钮的主要活动回来的登录活动,但失去了登录按钮的功能本身

01-18 11:59:14.938 7321-7321/info.androidhive.materialdesign E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: info.androidhive.materialdesign, PID: 7321
                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.materialdesign/info.androidhive.materialdesign.activity.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2373)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2435)
                                                                               at android.app.ActivityThread.access$900(ActivityThread.java:153)
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                               at android.os.Looper.loop(Looper.java:135)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5375)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:372)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
                                                                            Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
                                                                               at info.androidhive.materialdesign.activity.MainActivity.onClickButtonListener3(MainActivity.java:51)
                                                                               at info.androidhive.materialdesign.activity.MainActivity.onCreate(MainActivity.java:45)
                                                                               at android.app.Activity.performCreate(Activity.java:6865)
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2326)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2435) 
                                                                               at android.app.ActivityThread.access$900(ActivityThread.java:153) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:135) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5375) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 
这是我的Login.java

package info.androidhive.materialdesign.activity;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
import android.widget.EditText;
import android.widget.Toast;

import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;
import info.androidhive.materialdesign.R;
import info.androidhive.materialdesign.db.sqlitedb;

public class Login extends Activity {

sqlitedb sqlitehelper;
SQLiteDatabase db;

private static Button btn_login, btn_back;

EditText emailEditText, passwordEditText;

int i;
int flag;

private GoogleApiClient client;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    btn_login = (Button) findViewById(R.id.login_1);

    emailEditText = (EditText)findViewById(R.id.uemail);
    passwordEditText = (EditText)findViewById(R.id.upass);

    sqlitehelper = new sqlitedb(getApplicationContext());
    db = sqlitehelper.getWritableDatabase();

    onClickButtonListener1();
    onClickButtonListener2();
    btn_login.setClickable(true);

    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
public void onClickButtonListener1()
{
    btn_back = (Button)findViewById(R.id.back_1);
    btn_back.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // Intent i = new Intent("info.androidhive.materialdesign.activity.Home");
                    // startActivity(i);
                    finish();
                }
            }
    );
}
public void onClickButtonListener2()
{
    btn_login = (Button) findViewById(R.id.login_1);
    btn_login.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    onLoginClick(v);
                }
            }
    );
}

public void onLoginClick(View v) {

    if (v.getId() == R.id.login_1)
    {
        String contactEmail = emailEditText.getText().toString();
        String contactPassword = passwordEditText.getText().toString();

        String password = sqlitehelper.getSingleEntry(contactEmail);

        if (contactPassword.equals(password))
        {
            Intent i = new Intent("info.androidhive.materialdesign.activity.MainActivity");
            startActivity(i);
            finish();

        }
        else
        {
            Toast temp = Toast.makeText(Login.this, "Email and password don't match", Toast.LENGTH_SHORT);
            temp.show();
        }
    }
}

}

onCreate()
中初始化登录按钮:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    btn_login = (Button) findViewById(R.id.login_1);
然后调用
onClickButtonListener2()在此处再次初始化按钮:

public void onClickButtonListener2()
{
    btn_login = (Button) findViewById(R.id.login_1);
那么就这么做吧:

调用这个
onClickButtonListener2()onCreate()
中的code>方法并修改代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    btn_login = (Button) findViewById(R.id.login_1);

    emailEditText = (EditText)findViewById(R.id.uemail);
    passwordEditText = (EditText)findViewById(R.id.upass);

    sqlitehelper = new sqlitedb(getApplicationContext());
    db = sqlitehelper.getWritableDatabase();
    btn_login.setClickable(true);
    onClickButtonListener1();
    onClickButtonListener2();
    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
} 
并更改
onClickButtonListener2()至:

public void onClickButtonListener2(){
    btn_login.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String contactEmail = emailEditText.getText().toString();
                    String contactPassword = passwordEditText.getText().toString();
                    String password = sqlitehelper.getSingleEntry(contactEmail);
                    if (contactPassword.equals(password)){
                         Intent i = new Intent("info.androidhive.materialdesign.activity.MainActivity");
                         startActivity(i);
                         YourActivity.this.finish();
                    }else{
                         Toast temp = Toast.makeText(Login.this, "Email and password don't match", Toast.LENGTH_SHORT);
                         temp.show();
                    }
                }
            }
    );
}

希望对你有帮助

back\u 1
按钮是否在
activity\u login
布局中?您显示了错误的类。它有助于读取堆栈跟踪:
由以下原因引起:java.lang.NullPointerException:尝试在info.androidhive.materialdesign.activity.MainActivity.onClickButtonListener3(MainActivity.java:51)的空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)”在info.androidhive.materialdesign.activity.MainActivity.onCreate(MainActivity.java:45)
yup。。告诉你。。我可以在一小时前登录..我试图更改注销按钮的主活动代码…但丢失了登录活动登录按钮控件。。。