R文件缺少android

时间:2011-01-30 11:20:13

标签: android r.java-file

我正在使用Eclipse Helios,但由于性能问题,我改为Eclipse Galileo并安装了ADT插件,并将我的sdk文件夹添加到Elcipse Preferences中。现在R.java从我的所有项目中消失了。我怎么能解决这个问题,我做了Project / Clean但是不会生成文件,我的xml没有任何问题,我的任何项目都没有out.xml。

提前致谢

14 个答案:

答案 0 :(得分:21)

根据我的经验,xml中有一个错误。 Eclipse无疑会告诉你哪里。我修复后出现错误R.

答案 1 :(得分:5)

有时当您清理项目时R文件消失,我遇到了同样的问题。

我修复它的方式是:

- 确保删除所有“import android.R” 再次清理(如果这不能修复它,重新启动eclipse并再试一次)

或者

- 在注释f.e中指向R文件的指针。 // setContentView(R.layout.main); - 如果所有指向R文件的指针都在注释中,那么你应该只在文件中获得警告,并希望在其他地方出现错误。 - 修复错误,然后取消注释指针。有时eclipse会忽略一些错误并丢弃R文件,然后对它没有任何说明,这很烦人,但这会解决它。 :)

- 如果仍然无效,您可以尝试创建一个新项目并将代码复制粘贴到其中。

答案 2 :(得分:4)

我今天遇到了同样的问题并且弄清楚了。包含外部/示例文件时经常发生这种情况的原因是因为这些示例通常会引用应用程序中的布局,但无法访问包,因此无法在该包中看到R.java文件。为了清楚起见,这是R.java文件的开头:

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.conceptualsystems.dashboard;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int csc_logo=0x7f020000;
        public static final int icon=0x7f020001;
    }
    public static final class id {
        public static final int activation_code=0x7f070012;
        public static final int alpha_bar=0x7f07000b;
        public static final int alpha_label=0x7f07000a;

请注意包名称是应用程序的包名称。未包含在此包中的.java文件(即您刚刚删除的示例代码)将需要显式引用该包文件,如下所示:

package com.example.android.apis.graphics;

import android.app.Dialog;
import android.content.Context;
import android.graphics.*;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.SeekBar;
import com.conceptualsystems.dashboard.R;

最后一行是要注意的。显式导入资源后,资源将在示例代码中可用。

答案 3 :(得分:4)

在eclipse中创建了新项目,然后我将示例文件导入其中,但仍然是同样的错误。您可能想尝试以下操作:

  • 在Eclipse中 - >右键单击项目 - > Android工具 - >修复项目

  • 确保所有资源都是小写的。

答案 4 :(得分:1)

尝试在项目下拉列表中自动取消单击并重新单击构建项目,每次关闭程序。已经知道了一段时间的错误,但并不总是有固定的修复。

当它发生在我身上时,结果是因为我用大写字母命名了一个.xml文件。值得一试。

答案 5 :(得分:1)

从Eclipse / Helios升级到Eclipse / Juno时遇到了这个问题。

我设置了IDE,然后导入了一个现有的(工作)项目。如果我然后在模拟器中运行它,但它的原始版本虽然java代码是最新版本。

然后我做了一个Clean(正如许多其他帖子中所解释的那样)和一个(重新)构建,但由于发送了R.java文件而导致了一系列错误。

问题原来是布局xml文件中的某些“错误”,而这些错误并未被Eclipse / Helios识别。具体来说,在我的情况下,Juno反对的是一些layout_width ='match-parent'(和height)设置。我尝试直接在xml文件中更改它们,但是Juno没有使用它,仍然将其报告为“匹配 - 父级”错误(虽然它已经明显更改)。

唯一要做的就是转到图形布局,右键单击以获取“属性”,然后在那里更改“宽度”和“高度”属性。此外,由于他们已经显示为'fill-parent',我必须首先将它们更改为'wrap-content',然后将它们更改回'fill-parent'。

一旦我为'match-parent'的所有实例做了这个,我就可以进行构建并在模拟器中运行最新版本。

答案 6 :(得分:1)

res中有错误。一旦我在布局和菜单中有相同的xml文件,生成失败,没有生成R.java。

答案 7 :(得分:1)

本地化正确的R.包导入,应该在您的包中。

离。 import com.yourdomain.test.R;

答案 8 :(得分:0)

这是ADT Android项目与普通Java项目略有不同的地方。 android项目需要不断更新的持久性R.java 文件。除其他外,R.java文件在您的应用程序中提供了所有资源ID ,并维护了接口的一致性。

首先确保为您的android项目生成R.java文件。

  • 首先找到ADT(Eclipse)的顶部并清理项目 PROJECT-> CLEAN
  • 如果选中'自动构建',则应立即创建R.java文件。
  • 要确认,您只需搜索项目文件夹中的文件即可。如果没有创建它,你将找不到它。
  • 如果没有创建R.java,则有一个 interface * .xml 文件存在问题的可能性为90%。通常位于 res-> layout-> activityXXXX.xml

修复接口文件(尝试使用单个按钮或其他东西使其变得非常简单),并且ADT将自动生成R.java文件。此时,您应该开始注意主程序/活动中 R.layout.XXXX未找到类型错误。这是一件好事,因为现在您可以创建/重命名正确的布局项并修复您的项目。

只需2美分......

答案 9 :(得分:0)

同样发生在我身上,纠正了检查res xml文件中的任何错误,并将目标1.5更改为2.2 android(在我的情况下) 当从示例或其他开发人员导入外部代码或在线源代码时,这通常会发生在我身上。

答案 10 :(得分:0)

嗨,这周末我发生了这件事。

发生这种情况的实际原因是我在首选项中取消选中Android的更新选项,因为它不能使用以前版本的Eclipse。现在虽然日食似乎运行良好,但当我投射 - >清理项目时,R.java失踪了。

尝试重新勾选Android更新选项(WINDOW - >首选项 - > INSTALL / UPDATE)。

这完全解决了我的问题,我没有任何麻烦扫描我的许多xml文件或我的图像资源的每一行。

希望这有助于某人:)

答案 11 :(得分:0)

我刚遇到同样的问题。

原来我的Source控件插入了一个已添加的>>>>>>>>>>>>>>>>>>部分到我的mainifest文件。

我所要做的就是修复清单文件,然后所有错误都消失了。

答案 12 :(得分:0)

在我的项目中添加一些新资源时发生了这种情况。 每次资源更新后都会构建R文件。

我的案例中的错误是文件名不正确。其中一个图像资源的名称中有一个大写字母,并阻止了构建创建R文件。更改名称只是工作。

我建议当你一次添加太多资源时,只需确保它们的命名约定。很容易错过这样的事情。

资源约定:http://developer.android.com/guide/topics/resources/providing-resources.html

答案 13 :(得分:0)

我遇到了类似的问题。那是因为我保存了一个可绘制文件picture.jpg as picture.png,一旦我将名称更改为之前的名称就开始工作了。希望这将有助于将来的某个人

相关问题