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

Android点击按钮跳转ViewPager页面时App崩溃问题排查

崩溃原因及修复方案

核心崩溃触发点

你遇到的直接崩溃原因是页面跳转逻辑完全写错:

  • startActivity() 要求Intent传入的目标必须是已在AndroidManifest.xml中注册的Activity子类,但你当前跳转代码写的是new Intent(TelaPrincipal.this,SlideAdapter.class),SlideAdapter是继承自PagerAdapter的适配器类,根本不是Activity,系统找不到对应可启动的组件,会直接抛出ActivityNotFoundException导致应用闪退。
  • 你预期跳转的目标是承载ViewPager的treinos类(继承自AppCompatActivity),应该把这个类作为Intent的跳转目标。

其他会导致运行/编译异常的问题

  • 两个RelativeLayout布局文件都缺少闭合标签
    你贴出的单页卡布局、ViewPager承载页布局,文件末尾都没有写</RelativeLayout>闭合标签,要么编译阶段直接报资源错误,要么运行时加载布局抛出InflateException崩溃。
  • 类名不符合Java命名规范
    承载ViewPager的Activity类名treinos是小写开头,不符合Java大驼峰命名规范,后续注册Manifest、写跳转逻辑时很容易因为大小写写错触发类找不到异常,建议重命名为Treinos。
  • 未确认Activity注册状态
    新写的treinosActivity如果没有在AndroidManifest.xml中注册,哪怕跳转逻辑写对了也会崩溃。

具体修复操作

  1. 修改首页按钮的跳转代码:
bt_to_treinos.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 如果把类重命名为Treinos,这里替换成Treinos.class即可
        Intent intent = new Intent(TelaPrincipal.this, treinos.class);
        startActivity(intent);
    }
});
  1. 补全两个布局文件的闭合标签,在两个布局文件的最后一行分别加上</RelativeLayout>。
  2. 打开AndroidManifest.xml,确认treinosActivity已经注册,没有的话在<application>标签内添加如下配置:
<activity
    android:name=".treinos"
    android:exported="false" />
  1. (可选规范优化)将treinos类重命名为Treinos,同步修改Manifest、跳转代码里对应的类引用,避免后续因类名不规范产生的低级错误。

额外排查提示:如果完成以上修改后点击按钮仍触发空指针崩溃,检查IniciarComponentes()方法内是否通过findViewById正确绑定了bt_to_treinos按钮控件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:30:59