Android xml布局文件未添加到R.java

时间:2011-11-03 18:17:39

标签: android android-layout

<?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="wrap_content">

<ImageView
    android:id="@+id/imageNew"
    android:layout_width="50dip"
    android:layout_height="50dip"
    android:src="@drawable/icon"
    android:scaleType="centerCrop"/>




</LinearLayout>

这是我的新布局文件,eclipse没有检测到它,也不在R文件中。我无法创建任何新的布局文件,或者我做错了。所有旧的布局都很好看。

编辑:

此外,我之前创建的布局我已使用新ID编辑,但是也未检测到新ID。

17 个答案:

答案 0 :(得分:20)

清理你的项目或重启日食,我猜这是eclipse自动构建的问题。

答案 1 :(得分:19)

查看导入,导入的R可能不正确。

答案 2 :(得分:13)

我有这个导入

import android.R;

我删除了这个,布局再次正常工作

答案 3 :(得分:1)

如果布局中有任何错误,则不会向R文件添加新更新。查看错误面板,并可能进行干净的重建以查看弹出的错误。

您的布局xml很好。文件本身可能具有不兼容的名称。

答案 4 :(得分:1)

我的开发环境:[MacBook Pro,Eclipse:4.4.0]

我已经尝试了以上所有,但没有成功。

通过以下步骤解决:

步骤1)注释掉import android.R;   要么,  完全删除它。

步骤2)import packageName.R;

OR,

import com.arundhwaj.augmented_reality.R;

希望对某人有所帮助。

答案 5 :(得分:1)

我有同样的问题。我接受了Eclipse的建议并删除了

import android.R;

并用完全限定名R替换了对[project-specific package].R的所有引用,因为R文件实际上是在某个包下生成的,默认情况下不包含任何内容。

您可以通过查看gen文件夹来检查包名称。

答案 6 :(得分:0)

我遇到了同样的问题,我解决了用小写符号重命名xml文件的问题。

答案 7 :(得分:0)

我遇到了同样的问题并通过添加

修复了它
android:id="@+id/container"

下面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

答案 8 :(得分:0)

在我的情况下,IDE(Eclipse)一次又一次地添加了import android.R。我不得不更新我的Android SDK以使其消失。

答案 9 :(得分:0)

在我的情况下,我发现当我刚刚启动项目时,我重命名了包,但是重构功能并没有包含所生成代码的包的名称......所以重命名为I纠正了失误。

答案 10 :(得分:0)

这可能是eclipse的自动构建问题。所以,即使你删除android.R并做清洁构建,问题也许不会消失。并防止在gen文件夹

中创建任何R.java文件
  1. 删除导入android.R(R引用应该是你包R而不是android.R)
  2. 确保项目成功构建没有错误。您可以在项目中注释错误抛出对R的引用(如果在最坏的情况下注释所有R引用)。
  3. 清理项目

  4. 这应该删除所有陈旧的引用并进行全新的编译。一旦生成R.java。取消注释所有R引用。现在,以前未被识别的布局和其他参考应解决

答案 11 :(得分:0)

名称xml文件可能存在问题。名称不应包含大写符号。

答案 12 :(得分:0)

我改变了 {android:src =“@ drawable / Myapp”}来 在我的layout.xml中{android:src =“@ drawable / myapp”}然后我可以在Mainactivity.java中选择R.layout.mylayout

不允许使用大写字母。

答案 13 :(得分:0)

如果您遇到同样的问题Just&#34; Clean&#34;该项目应该有效。

答案 14 :(得分:0)

而不是使用android.R.layout。使用 R.layout.new_layout_file

EXAMPPLE,在arrayadapter中   ArrayAdapter item = new ArrayAdapter&lt;&gt;(this,R.layout.list_item,array);  其中E是对象

答案 15 :(得分:0)

发生这种情况的另一个原因。例如,如果添加一个新模块并为其提供一个现有的包名称,则将生成重复的BuildConfig.java类文件。 mergeDexRelease和mergeDexDebug gradle任务不会那样,并且会失败,并显示错误“程序类型已存在”,后跟重复类的名称。

如果您没有注意到该错误,则会看到R.id.yourLayout或R.drawable.yourIcon之类的内容在您的应用中未定义。具有讽刺意味的是,仍然可以找到字符串资源。纠正方法是使用重复的名称更改其中一个模块中的软件包名称。

如果要在Android Studio中查找重复类的位置,请使用“导航/类...”并输入重复类的名称。您可能需要检查“包括非项目项目”

答案 16 :(得分:0)

在我的情况下,我只是将丢失的xml文件复制并粘贴到具有不同名称的同一布局文件夹中,并且突然两个ID开始出现在R中。我想生成R肯定是暂时的问题。Btw,我正在使用产品不确定是否有关联。