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

Android Studio开发BMI计算器时,R.id.main报错无法解析符号id

解决方案:Cannot find symbol variable id 错误修复

这个错误的核心原因是你在代码中引用了R.id.main,但对应的布局文件activity_main.xml里并没有定义这个id,同时可能存在R文件生成异常的情况,按以下步骤解决:

1. 给根布局添加指定id

打开activity_main.xml,在最外层的LinearLayout标签中添加android:id="@+id/main"属性,修改后的根布局代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">

2. 检查R文件导入是否正确

打开MainActivity.java,确保导入的是你项目包名下的R类,而不是系统的android.R:

  • 正确导入:import com.miramichelle.bmicalculator.R;
  • 如果发现有import android.R;,直接删除这一行

3. 重新构建项目

之前的Clean操作可能没彻底解决问题,执行以下操作:

  • 点击Android Studio顶部菜单栏的Build -> Rebuild Project,等待项目重新构建完成

错误信息回顾

C:\Users\using\Desktop\Android Projects\BMICalculator\app\src\main\java\com\miramichelle\bmicalculator\MainActivity.java:18: error: cannot find symbol
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
^
symbol: variable id
location: class R

你的代码参考

MainActivity.java

package com.miramichelle.bmicalculator;

import android.os.Bundle;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }
}

activity_main.xml(修改前)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="BMI Calculator" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Male" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Female" />

    </LinearLayout>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Age" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="Feet" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="Inches" />
    </LinearLayout>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Weight (kg)" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="calculate" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="23.6" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="You are a healthy weight!" />
</LinearLayout>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:10:19