首页 > 解决方案 > 编译应用程序时Android Studio上的Android资源编译错误

问题描述

我在生成的 ID 的 XML 文件中收到编译错误。在我将它们设为资源之前,btnAdd、etItem、rvItems 都是红色的。我添加了 Button、EditText、RecyclerView 的值,但我不确定这是否是正确的举动,但我做到了,它奏效了。文字不再是红色了,但我得到了一个错误。在做了我认为可行的改变之后,它没有帮助。错误似乎在小 xml 文件中。原来问题是btnAdd、etItem、rvItems都是红色的,不明白为什么。它建议将它们添加为资源,所以我做了......

package com.example.simpletodo;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    List<String> items;

    Button btnAdd;
    EditText etItem;
    RecyclerView rvItems;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnAdd = findViewById(R.id.btnAdd);
        etItem = findViewById(R.id.etItem);
        rvItems = findViewById(R.id.rvItems);


        etItem.setText("I'm doing this in Java.");

        items = new ArrayList<>();
        items.add("Buy Milk");
        items.add("tomatoes");
        items.add("potatoes");
    }
}

这是问题所在的xml文件。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="btnAdd" type="id">Button</item>
    <item name="etItem" type="id">EditText</item>>
    <item name="rvItems" type="id">RecyclerView</item>
</resources>

这是我创建的。btnadd、etItem 和 rvItems 是红色的,所以我将它们添加为资源并生成了上面的 xml 文件。

这是我的活动 xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="1dp"
        android:layout_marginRight="2dp"
        android:layout_marginBottom="-2dp"
        android:text="Add" />

    <EditText
        android:id="@+id/textView"
        android:layout_width="369dp"
        android:layout_height="39dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="0dp"

        android:layout_marginEnd="93dp"
        android:layout_marginBottom="0dp"
        android:hint="Add in item here"
        android:textAlignment="textStart" />

    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="512dp" />

</RelativeLayout>

这是我第一次做这个项目,所以请帮忙在此处输入图像描述

这是制作的xml。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="btnAdd" type="id">Button</item>
    <item name="etItem" type="id">EditText</item>>
    <item name="rvItems" type="id">RecyclerView</item>
</resources>

这是我第一次参与这个项目,大多数问题都没有帮助我解决我的问题。请帮忙!我尝试清理和重建项目,当我按下选项输入时,我将它们添加为资源,但给了我一个编译错误。请帮忙!

标签: javaandroidcompiler-errors

解决方案


尝试使用@id 引用

<Button
    android:id="@id/btnAdd" />

<EditText
    android:id="@id/etItem" />

<androidx.recyclerview.widget.RecyclerView
    android:id="@id/rvItems" />

推荐阅读