Android开发:MainActivity中通过ID查找控件报空指针异常求助
Android空指针异常(NullPointerException)问题修复
错误原因
你代码里的btn和txt变量仅声明但未初始化,初始值为null,却直接调用它们的findViewById()方法,这就触发了java.lang.NullPointerException——对null对象调用方法必然导致应用崩溃。正确的控件获取方式是调用当前Activity的findViewById(),将返回的控件实例赋值给变量。
修正后的MainActivity代码
package com.example.app; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity6 extends AppCompatActivity { private Button btn; private TextView txt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main6); // 修正:调用Activity的findViewById获取控件实例,赋值给变量 btn = findViewById(R.id.button); txt = findViewById(R.id.txt); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { txt.setText("This is a new text."); } }); } }
补充说明
- 你当前的XML布局文件是正确的,
setContentView(R.layout.activity_main6)也已正确加载布局,无需修改XML内容。 - 若使用Android Studio 3.6及以上版本,也可通过**视图绑定(View Binding)**彻底避免此类空指针问题,但上述基础修复已能解决当前崩溃。
内容的提问来源于stack exchange,提问作者Mohammad Reza Zolfaghari
相关产品推荐
相关产品推荐

