R.id无法解决

时间:2010-03-20 16:04:57

标签: java android eclipse

所以我从Google的android网站上复制了这个教程示例,我得到一个错误,即R.id无法解析。

这是我的Java文件

package com.TestApp.HelloWebView;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class HelloWebView extends Activity {
    WebView mWebView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.google.com");
    }

}

这是我的res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>

<WebView android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

16 个答案:

答案 0 :(得分:24)

你必须导入你的R类

import com.TestApp.HelloWebView.R;

同样,在发布需求时,您必须为布局使用命名空间。

?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

答案 1 :(得分:12)

我更新Android SDK时遇到了同样的问题。突然,新项目无法生成R.java文件。

  • 导入我的R.java没有帮助,因为它没有生成
  • 清理和构建项目也没有帮助 - / gen文件夹仍然是空的。

我发现升级后,adb服务器无法正常启动。所以手动启动它:

$ cd $ANDROID_SDK/platform-tools
$ adb start-server

然后我重新启动了Eclipse并对项目进行了清理/构建,生成了R.java文件。

答案 2 :(得分:10)

如果使用Eclipse,请运行一个干净的构建(Project/Clean...);这通常可以解决资源未正确编译的问题。

答案 3 :(得分:2)

您是否尝试过此处列出的任何解决方案? R cannot be resolved - Android error

另外,查找您的R.java文件。它有什么错误吗?

答案 4 :(得分:2)

我也有这个问题。我不能说一般的解决方案,但你可以创建一个新的工作场所并复制硬编码。在将来永远不要点击清理或构建,而是再次保存或启动eclipse。

答案 5 :(得分:1)

进入main.xml文件,删除一个字符并重写它。这将再次生成R文件。

答案 6 :(得分:1)

确保您没有名称中包含大写字母的任何xml文件。

我遇到了同样的问题。

res中的所有文件名(及其所有子文件夹,包括布局)必须仅为小写。这包括图像文件,xml文件等(即使它们未在项目中的任何位置引用。)

答案 7 :(得分:1)

在尝试Android初学者的tute(http://mobile.tutsplus.com/tutorials/android/android-sdk-development/)时,“R.id无法解决”错误让我感到难过。在我的例子中,它是一个android:onClick in /res/layout/main.xml。在AVD平台1.5 API级别3中似乎不支持onClick。

使用平台1.6 API更改新的AVD,级别6删除了错误 - 还从头开始使用新的api和级别设置启动项目。对于绝对的Eclipse新手(比如我自己),用:

创建一个新的AVD

窗口 - &gt; Android SDK和AVD Manager - &gt;新。从“目标”下拉列表中选择平台,级别编号。

答案 8 :(得分:1)

还尝试删除~.android \ debug.keystore(发生在我身上,认为这是由于R.id问题)。真正的问题是debug.keystore超过一年!

答案 9 :(得分:1)

当我试图关注Lars Vogel的Android开发教程时遇到了这个问题......事实证明我的问题仅仅是因为我没有保存布局文件。保存文件后,它可以正常工作。

答案 10 :(得分:0)

如果你发布了你的main.xml文件,那就不对了。您必须编写xml命名空间:

的xmlns:机器人= “http://schemas.android.com/apk/res/android”

例如:

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/label"
    android:layout_width="78dip"
    android:layout_height="65dip"
    android:paddingTop="4dip"
    android:textSize="12dip"
    android:singleLine="true"
    android:ellipsize="end"
    android:textColor="@color/bright_text_dark_focused"
    android:gravity="center_horizontal|center_vertical" />

答案 11 :(得分:0)

是的另一个修复 我启动了模拟器。通过运行helloandroid程序,编译。 离开了eclispe而又回来了,不知道哪一个解决了这个问题。

清理项目等并没有解决它 - 我可以有2小时的生命回来!

答案 12 :(得分:0)

import com.TestApp.R; R丢失后不被接受。

我的Eclipse现在每次“清理”时自动创建一个新的“res”文件夹。是的,我的项目文件夹下直接有两个名为“res”的文件夹。自动创建的是空的。仍然找到字符串值。 Eclipse报告没有“R无法解决”之外的其他错误。

答案 13 :(得分:0)

尤里卡!我设法将我的第一个android项目导入Eclipse!

之前我总是在项目的属性 - Java构建路径 - 库选项卡下找到“无法找到系统库”,一旦发生它就无法纠正它。结果是导入的任何内容都无法解决导入语句。

在这种情况下,我将JDK合规性级别从1.6改为1.5 BEFORE 我导入(之后为时已晚,无法修补)。它必须从Window - Preferences - Java - Compiler完成(之前我认为只有通过右键单击已导入的项目才能使用此选项)。然后右键单击每个项目并将Properties - Android设置为合适的Target(上面的错误,eclipse会忽略任何选择)。然后,我甚至可以改回JDK合规级别1.6。

因此,通常,在导入之前更改JDK合规性级别可能会有所帮助。

删除项目始终时,请在“是否确定”对话框中选中“删除磁盘上的项目内容(无法撤消)”复选框。否则无法重新导入项目,如果你第一次使用错误的JDK合规级别导入它,除了在另一个工作区中尝试之外,不可能纠正错误。

这是一个非常沮丧的Eclipse用户的经历。

答案 14 :(得分:0)

确保您的某个.xml文件中没有隐藏错误 有时您可以删除strings.xml文件中重要的语句。

例如,在Vogella示例中,我收到了错误:

错误:找不到与给定名称匹配的资源(在'title'处,值为'@ string / menu_settings')。

我删除了该行:

<string name="menu_settings">Settings</string>

将其放回或删除 res / menu / main.xml 可以解决错误。

答案 15 :(得分:-1)

我遇到了同样的问题但得到了修复

我不确切地知道这个问题将如何解决

试试,这可能会有所帮助

将此代码添加到您的代码顶部

import com.MyFirstApp.activities.R;

此处com.MyFirstApp.activties是我的组件名称,将其替换为您的组件名称