安卓工作室中没有显示错误,但setOnClickListener仍然只在一个按钮上工作,而在另一个按钮则不工作



我的java代码:

public class StartActivity extends AppCompatActivity {
private Button mRegBtn;
private Button mLoginBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
mRegBtn = (Button) findViewById(R.id.start_reg_btn);
mLoginBtn = (Button) findViewById(R.id.start_login_btn);
mRegBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent reg_intent = new Intent(StartActivity.this, RegisterActivity.class);
startActivity(reg_intent);
}
});
mLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent login_intent = new Intent(StartActivity.this, LoginActivity.class);
startActivity(login_intent);
}
});
}
}

LogCat显示:

2020-04-30 12:53:42.391 31407-31407/com.example.chattting E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.chattting, PID: 31407
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chattting/com.example.chattting.LoginActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2947)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3012)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1716)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:232)
at android.app.ActivityThread.main(ActivityThread.java:6802)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1103)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
at com.example.chattting.LoginActivity.onCreate(LoginActivity.java:43)
at android.app.Activity.performCreate(Activity.java:6974)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2900)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3012) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1716) 
at android.os.Handler.dispatchMessage(Handler.java:110) 
at android.os.Looper.loop(Looper.java:232) 
at android.app.ActivityThread.main(ActivityThread.java:6802) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1103) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964) 

我给出的第一个答案。根据您的日志"原因是:java.lang.NullPointerException:试图在null对象引用上调用虚拟方法'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence('",该方法在设置AppBar标题时遇到问题。我敢打赌,在您试图启动的某个活动中,按钮出现了某种错误。如果您想要更多帮助,请告诉失败的按钮是什么,并发送"其他两个活动"代码。

最新更新