You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中IMC计算器启动报错:无法实例化Activity

问题原因

崩溃的核心原因是你在Activity布局加载完成前,就调用了findViewById并尝试获取EditText的文本内容。类成员变量会在Activity实例化时初始化,这远早于onCreate()方法执行和setContentView()加载布局的时机。此时Activity还没有视图层级,findViewById会返回null,调用getText()时就会触发空指针异常。

修复后的代码

以下是修正后的MainActivity代码:

package com.example.calculoimc;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    // 仅声明EditText变量,不在这里初始化
    EditText nombreApellidos;
    EditText edad;
    EditText altura;
    EditText peso;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 在setContentView之后初始化EditText,确保视图层级已创建
        nombreApellidos = findViewById(R.id.NombreApellidos);
        edad = findViewById(R.id.Edad);
        altura = findViewById(R.id.altura);
        peso = findViewById(R.id.peso);
    }

    public void sendData(View v) {
        // 点击按钮时再获取用户输入的最新内容
        String name = nombreApellidos.getText().toString().replace("Nombre", "");
        String edadN = edad.getText().toString().replace("Edad", "");
        String alturaN = altura.getText().toString().replace("Altura", "");
        String pesoN = peso.getText().toString().replace("Peso", "");

        Intent i = new Intent(this, SeeResults.class);
        String[] info = new String[4];
        info[0] = name;
        info[1] = edadN;
        info[2] = alturaN;
        info[3] = pesoN;
        i.putExtra("data", info);
        startActivity(i);
    }
}

关键修复点

  • 将findViewById调用移到onCreate()方法内,且在setContentView()之后执行,确保视图层级已创建才能找到对应控件。
  • 将获取EditText文本的逻辑移到sendData()方法中,这样能获取用户点击按钮时的最新输入内容,而非Activity启动时的空值。
  • 修复了replace()方法的语法错误(补充了缺失的闭合引号和括号)。

另外,Manifest文件中SeeResults的parentActivityName可简化为".MainActivity"(因同属一个包),但这不是导致崩溃的原因。

内容的提问来源于stack exchange,提问作者Rober

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:30:40