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

Android Studio修改启动主Activity后应用崩溃问题求助

问题解决:启动Home Activity时崩溃的空指针问题

错误原因

崩溃的核心是在Activity成员变量声明阶段调用findViewById()。此时Activity还未完成初始化,既没有加载布局,也没有可用的Context,调用findViewById()会触发空指针异常(NullPointerException)。

从报错信息可以看到,异常发生在Home.java的第14行——也就是你直接在成员变量声明时赋值的代码:

FloatingActionButton fab_Add=findViewById(R.id.fab_add);

这行代码会在Activity构造函数执行时运行,而此时setContentView(R.layout.home)还未执行,系统无法找到对应的View,同时Context尚未初始化,最终导致报错。

修复方案

只需要调整View初始化的时机,将findViewById()的调用放到onCreate()方法中,且必须在setContentView()之后:

修改后的Home.java代码:

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;

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

import com.getbase.floatingactionbutton.FloatingActionButton;

public class Home extends AppCompatActivity {

    // 仅声明成员变量,不做初始化赋值
    FloatingActionButton fab_Add;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home);

        // 加载布局后,再初始化View并设置监听
        fab_Add = findViewById(R.id.fab_add);
        fab_Add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openNewActivity();
            }
        });
    }

    public void openNewActivity(){
        Intent intent = new Intent(this, Home2.class);
        startActivity(intent);
    }
}

额外说明

你的AndroidManifest.xml配置是正确的:Home Activity已设置android:exported="true",并包含了MAIN和LAUNCHER的intent-filter,这部分无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:10:24