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

Android Studio中Java实现BottomNavigationBar编译报错求助

BottomNavigationBar导航项ID编译错误解决方法

核心问题排查与修复

  • 资源ID不匹配或未定义
    检查res/menu目录下的底部导航菜单XML文件,确保home_button、agence_button、reserve_button、about_button这些ID在菜单文件中存在,且拼写完全一致——哪怕是大小写、下划线的差异,都会导致编译器无法识别ID。

  • 类名不符合Java规范
    Java类名要求首字母大写,你代码中的about、agence类必须重命名为AboutActivity、AgenceActivity,同时同步修改AndroidManifest.xml中的注册信息,否则编译器无法正确解析类引用。

  • 跳转目标Activity逻辑错误
    你提供的about类代码里,reserve_button的跳转目标写的是about.class,这明显不符合逻辑,应该替换为对应的预约页面Activity(比如ReserveActivity.class),逻辑错误也可能触发编译异常。

修正后的AboutActivity代码示例

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import com.google.android.material.bottomnavigation.BottomNavigationView;

public class AboutActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_about);
        
        BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigation);
        bottomNavigationView.setSelectedItemId(R.id.about_button);
        
        bottomNavigationView.setOnItemSelectedListener(item -> {
            switch (item.getItemId()) {
                case R.id.home_button:
                    startActivity(new Intent(getApplicationContext(), MainActivity.class));
                    overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
                    finish();
                    return true;
                case R.id.agence_button:
                    startActivity(new Intent(getApplicationContext(), AgenceActivity.class));
                    overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
                    finish();
                    return true;
                case R.id.reserve_button:
                    startActivity(new Intent(getApplicationContext(), ReserveActivity.class));
                    overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
                    finish();
                    return true;
                case R.id.about_button:
                    return true;
                default:
                    return false;
            }
        });
    }
}

额外编译错误处理步骤

  • 点击Android Studio顶部菜单栏的Build -> Clean Project,完成后再执行Rebuild Project,清理编译缓存后重新构建项目。
  • 检查AndroidManifest.xml,确认AboutActivity、AgenceActivity、ReserveActivity都已注册,未注册的Activity会直接导致编译失败。
  • 如果报错提示“cannot resolve symbol 'R.id.xxx'”,不要手动修改自动生成的R.java文件,先检查对应XML文件中是否存在该ID,再同步项目资源(点击菜单栏File -> Sync Project with Gradle Files)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:07:39