【发布时间】:2022-01-04 06:54:36
【问题描述】:
每当我在 android studio 上运行我的程序时,就会出现这种情况
AndroidRuntime: 致命异常: main 进程:com.example.myapplication,PID:4288 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}:java.lang.NullPointerException:尝试调用虚拟方法 'void android.widget.Button.setOnClickListener(android. view.View$OnClickListener)' 在空对象引用上 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' 在 com.example.myapplication.MainActivity.onCreate(MainActivity.java:19) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button AddButton = (Button) findViewById(R.id.AddButton);
AddButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText FirstNum=(EditText) findViewById(R.id.FirstNum);
EditText SecondNum=(EditText) findViewById(R.id.SecondNum);
TextView Result = (TextView) findViewById(R.id.Result);
int num1 = Integer.parseInt(FirstNum.getText().toString());
int num2 = Integer.parseInt(SecondNum.getText().toString());
int result = num1 + num2;
Result.setText(result + " ");
}
});
}
}
【问题讨论】:
-
findViewById(R.id.Addbutton)返回null,这意味着它在当前布局中找不到具有该 ID 的视图。因此,请确保您的activity_main布局包含一个 id 为AddButton的元素,并且它确实是Button
标签: android-studio