4

http://developer.android.com/training/basics/firstapp/building-ui.html

我一直在关注本教程,但我有两个错误,都是“R 无法解析为变量”。我过去制作过 android 应用程序(简单的应用程序),我记得通过检查我是否有 import R 语句(我没有)以及项目在构建之前是否已清理来解决这个问题再次(我清理它,我仍然得到错误)。我不知道该怎么做。谢谢!

*我还要提一下我确实看到了170次点击的同名帖子,并且“删除import R语句”的解决方案不适用于我的问题(我不认为)再次感谢

所有代码都直接来自上面的链接,但这里是为了方便起见

activity_my_first.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">
    <EditText android:id="@+id/edit_message"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</LinearLayout>

MyFirstActivity.java

package com.example.myfirstapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class MyFirstActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_first);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_my_first, menu);
        return true;
    }


}

字符串.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My First App</string>
    <string name="edit_message">Enter a message</string>
    <string name="button_send">Send</string>
    <string name="menu_settings">Menu Settings</string>
</resources>

编辑:当我清理项目时,我在控制台中收到此消息:

[2012-06-29 11:12:38 - MyFirstApp] W/ResourceType(6140):错误的 XML 块:标头大小 91 或总大小 0 大于数据大小 0 [2012-06-29 11:12:38 - MyFirstApp] C:\Users\zhong\workspace\eclipse\MyFirstApp\res\menu\activity_my_first.xml:2: error: Error: No resource found that match the given name (at 'title' with value '@string/menu_settings' )。

编辑:在布局 xml 文件中添加了一行<string name="menu_settings">Menu Settings</string> 修复了清理项目错误,但我仍然无法从两个 R 错误中运行项目。

4

12 回答 12

7

我正在研究相同的示例,并且遇到了相同(或非常相似)的问题。

最后我注意到 manifest.xml 上有一个很小的红色 x。果然,它在抱怨这个:

android:label="@string/title_activity_hello_world" >

所以我补充说:

<string name="title_activity_hello_world">Hello World</string>

到strings.xml,现在它可以工作了。

于 2012-07-06T20:44:30.010 回答
3

我在学习教程时遇到了同样的问题。清理项目或清理进口并没有解决问题。

问题是如何(简单地)解决的:我退出 Eclipse 并重新启动它。

于 2012-07-18T22:49:42.177 回答
1

2 可能的事情

Android Manifest 中指定的包名称与 Java 文件中的不同。

或者,您的 IDE 没有在 gen/ 文件夹中生成 R.java 文件。再次尝试构建(尽管有错误),它通常会清除它。

基本上,R.java 文件是为您生成的,并且在同一个包中,因此您可以将其简称为 R。

于 2012-06-29T02:20:30.803 回答
1

我有android:text="@string/button_send"
哪个给出了错误:No resource found that matches the given name (at 'text' with value '@string/button_send').

我尝试使用教程解决错误。但是教程并没有告诉我将所有需要的行一一写出来。所以我想念"<string name="button_send">Send</string>"在strings.xml中写。

添加上一行后,错误消失了!我认为这与该线程中的原始问题类似。

因此,如果我从给定的教程中复制了整行,它可能不会发生,但是通过输入 our-self 是我认为最好的学习方式。

于 2012-09-16T21:16:21.957 回答
1

我找到了解决方案:

去你那里project->res->menu 打开XML文件并删除这一行:

android:title="@string/menu_settings"

我删除了它,它开始工作,在问题部分发出相同的警告 3 小时后。

当您阅读它时,它甚至是有意义的,“title具有价值@string/menu_settings

于 2012-09-26T00:07:21.390 回答
0

请确认没有错误

1- 项目文件夹 2- eclipse 的问题视图 3- 控制台 4- 错误日志如图 在此处输入图像描述

于 2012-06-29T02:53:16.940 回答
0

你必须确保

  1. 清理你的项目 Project-->Clean
  2. /res 目录不包含错误(某些文件将在文件资源管理器中显示为红色图标)
  3. 您的导入不包含此行import android.R;
  4. 检查 AndroidManifest.xml 中属性包的值是否正确。<manifestxmlns:android="http://schemas.android.com/apk/res/android" package="your.correct.package.name"
于 2012-06-29T03:02:44.107 回答
0

这为我修复了它: https ://stackoverflow.com/a/3259974/1538785

似乎eclipse喜欢无缘无故地向java文件添加导入行。进入你的java文件,点击ctrl+shift+o,所有的import语句都会出现。删除说 import andriod.R 的行

于 2012-07-19T18:36:43.547 回答
0

右键单击项目,选择“Android 工具”>“添加支持库”>“Android 支持库,修订版 11”>“安装”

于 2013-01-11T19:05:30.550 回答
0

就我而言,问题是我在 64 位 Linux 上,并且没有安装所需的 32 位库,这意味着构建工具无法生成 R.java。

运行此命令,然后清理项目,解决了问题:

sudo apt-get install ia32-libs
于 2013-07-09T13:46:18.617 回答
0

如果您在 Linux 机器上运行默认下载,请确保 sdk/build-tools/android-xyz/* 中的可执行文件(aapt 等)是可执行的...

于 2014-01-12T22:31:07.467 回答
0

我在尝试第一个教程时遇到了同样的错误。为了让应用程序运行,我编辑了 MainActivity.java 所以它看起来像这样

package com.example.myfirstapp;

导入android.app.Activity;导入android.os.Bundle;

公共类 MainActivity 扩展 Activity {

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

}

}

于 2014-02-17T15:13:17.883 回答