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

Android Studio 无XML/Layout为Activity添加按钮时应用闪退求助

Android Studio开发问题修复方案
  • Intent构造报错修复
    你代码中红色报错的Intent intent = new Intent(this, MainActivity2.class)行,是因为this指向了Button.OnClickListener匿名内部类实例,Intent构造需要传入Activity上下文,修改为Intent intent = new Intent(GamePlayScene.this, MainActivity2.class)即可。另外你创建完Intent后没有添加startActivity(intent)执行跳转,补全这行代码才能实现点击重试进入MainActivity2的逻辑。
  • MainActivity2不显示游戏元素修复
    你绑定的XML布局是空的,游戏内容是通过代码直接渲染的自定义View/Scene,需要在MainActivity2的onCreate方法中,调用setContentView加载XML后,将游戏渲染的根View实例添加到XML的根布局容器中,才能正常显示飞船等游戏元素。
  • 添加按钮后崩溃的排查方向
    1. 先检查AndroidManifest.xml中是否注册了MainActivity2,未注册的Activity跳转时会直接触发崩溃
    2. 如果你在XML中定义按钮后通过findViewById获取实例,要保证id和XML中声明的完全一致,类型匹配,否则会出现空指针异常导致崩溃
    3. 确认你页面的根布局类型,如果根布局不是FrameLayout,使用FrameLayout.LayoutParams添加控件会触发布局参数类型不匹配的崩溃

修复后的完整代码参考:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Button button= new Button (this);
    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
            FrameLayout.LayoutParams.WRAP_CONTENT,
            FrameLayout.LayoutParams.WRAP_CONTENT);
    params.topMargin = 0;
    params.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;

    button.setText("Retry");
    addContentView(button, params);
    button.setOnClickListener(new Button.OnClickListener(){
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(GamePlayScene.this, MainActivity2.class);
            startActivity(intent);
        }
    });
}

内容的提问来源于stack exchange,提问作者Dannielle Marvic Banaban

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:45:04