【问题标题】:R.id cannot be resolved [duplicate]R.id 无法解析 [重复]
【发布时间】:2011-01-29 20:04:01
【问题描述】:

所以我直接从 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"/>

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    你必须导入你的 R 类

    import com.TestApp.HelloWebView.R;
    

    正如 Demand 发布的那样,您必须为您的布局使用命名空间。

    ?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"/>
    

    【讨论】:

    • 从新的 Android SDK 开始,不需要显式导入 com.TestApp.R。 Eclipse 会自动解决它。
    【解决方案2】:

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

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

    我发现升级后,adb server 没有正常启动。所以一个手动启动它:

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

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

    【讨论】:

    • @pestrella 我尝试在 cmd 上键入代码,但说 $ 无法识别.. 我在 cmd 上做对了吗?或者这不适用于 cmd..?
    • @Raf $ 是一个 unix shell 提示符。在 Windows 中,忽略每行的前导 $。您还需要编辑安装 SDK 的第一行的路径。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        我也有这个问题。我不能说一般的解决方案,但是您可以创建一个新的工作场所并复制硬代码。以后永远不要点击 clean 或 build,而是保存或再次启动 eclipse。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

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

            窗口 -> Android SDK 和 AVD 管理器 -> 新建。从“目标”下拉列表中选择平台、级别编号。

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                【解决方案9】:

                当我尝试遵循 Lars Vogel 的 Android 开发教程时遇到了这个问题……原来我的问题仅仅是因为我没有保存布局文件。保存文件后,它就可以正常工作了。

                【讨论】:

                • 是的,我也在杜弗斯俱乐部。 :)
                【解决方案10】:

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

                我遇到了同样的问题。

                res 中的所有文件名(及其所有子文件夹,包括布局)只能小写。这包括图像文件、xml 文件等(即使在项目中的任何地方都没有引用它们。)

                【讨论】:

                  【解决方案11】:

                  如果您发布了完整的 main.xml 文件,那么这是不对的。你必须写一个xml的命名空间:

                  xmlns:android="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" />
                  

                  【讨论】:

                    【解决方案12】:

                    是的,另一个修复 我启动了模拟器。通过运行一个 helloandroid 程序,它确实编译了。 退出了 eclispe 又回来了,不知道是哪一个解决了问题..

                    清理项目等并没有解决问题 - 我可以恢复 2 小时的生命吗?

                    【讨论】:

                      【解决方案13】:

                      导入 com.TestApp.R; 丢失 R 后不接受。

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

                      【讨论】:

                        【解决方案14】:

                        尤里卡!我已经成功地将我的第一个 android 项目导入 Eclipse!

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

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

                        因此,一般来说,在导入之前更改 JDK 合规级别可能会有所帮助。

                        删除项目时总是选中“您确定”对话框中的“删除磁盘上的项目内容(无法撤消)”复选框。否则无法重新导入项目,o 如果第一次导入的 JDK 合规级别错误,则无法纠正错误,只能在另一个工作区尝试。

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

                        【讨论】:

                          【解决方案15】:

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

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

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

                          我已删除该行:

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

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

                          【讨论】:

                            【解决方案16】:

                            我遇到了同样的问题,但已经解决了

                            我不知道这个问题到底要怎么解决

                            试试吧,可能会有帮助

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

                            import com.MyFirstApp.activities.R;
                            

                            这里com.MyFirstApp.activties是我的组件名,用你的组件名替换它

                            【讨论】:

                            • 这似乎没有为接受的答案添加任何内容。
                            猜你喜欢
                            • 2011-09-06
                            • 2019-08-21
                            • 1970-01-01
                            • 2012-01-26
                            • 1970-01-01
                            • 2016-09-05
                            • 1970-01-01
                            • 2021-12-29
                            • 2013-06-10
                            相关资源
                            最近更新 更多