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

Android开发报错:Have you declared this activity in your AndroidManifest.xml? 求助

问题解决指南

1. 先聚焦Manifest注册问题

报错"Have you declared this activity in your AndroidManifest.xml?"是核心提示,优先排查这个点:

  • 打开AndroidManifest.xml,确认第二个游戏的Activity是否有如下格式的注册代码:
<activity
    android:name="你的包名.第二个游戏Activity的类名"
    android:exported="true" /> <!-- 若targetSdkVersion≥30,必须设置该属性 -->
  • 核对android:name的路径是否和Activity实际所在包完全一致,比如Activity在com.example.games子包下,就不能只写SecondGameActivity,要写全路径。
  • 对照你提供的Manifest截图,确认该Activity的注册项没有遗漏、类名拼写无误。

2. 检查菜单点击逻辑

如果Manifest注册无误,再排查OnOptionsItemSelected的代码:

  • 确认第二个菜单项的itemId匹配正确,且跳转的Activity类名无错误:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.menu_tic_tac_toe) {
        startActivity(new Intent(this, TicTacToeActivity.class));
        return true;
    } else if (id == R.id.menu_second_game) {
        // 重点检查这里的Activity类名是否拼写正确、导入是否正确
        startActivity(new Intent(this, SecondGameActivity.class));
        return true;
    }
    return super.onOptionsItemSelected(item);
}
  • 可以在第二个分支里添加日志,验证是否走到了跳转逻辑:
Log.d("MenuCheck", "触发第二个游戏菜单点击");

如果日志没输出,说明菜单xml里的android:id和代码中判断的itemId不匹配,需同步修正。

3. 额外排查手段

  • 执行Build > Clean Project + Build > Rebuild Project,清理缓存后重新编译,避免Manifest修改未生效。
  • 确认第二个游戏的Activity有无无参构造方法,若手动编写了带参构造,必须保留无参构造(系统需要通过它实例化Activity)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:53:10