【问题标题】:R.java file not being generated automaticallyR.java 文件没有自动生成
【发布时间】:2014-03-31 05:40:38
【问题描述】:

我真的需要帮助。我是android编程的初学者,我想做一个简单的数独游戏。但是如果没有解决这个问题,我将无法继续。我的 R.java 文件没有被生成。这里是代码 -

package org.example.sudoku;



import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class Sudokugame extends Activity {

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


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.sudokugame, menu);
        return true;
    }

}

它说 R 不能被解析为变量。并且 gen 文件夹中缺少 R.java 文件。 P.S - 我的文件在 res 文件夹中都没有以大写字母开头,所以这不是错误。

这是我的 xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/main_title"/>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/continue_label"/>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/new_game_label"/>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/about_label"/>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/exit_label"/>
    </LinearLayout>

这是我的 strings.xml 代码:

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

    <string name="app_name">Sudoku</string>
    <string name="main_title">Android Sudoku</string>
    <string name="continue_label">Continue</string>
    <string name="new_game_label">New Game</string>
    <string name="about_label">About</string>
    <string name="exit_label">Exit</string>

</resources>

这是我的 androidmanifest.xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.example.sudoku"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="1"
        android:targetSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="org.example.sudoku.Sudokugame"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

【问题讨论】:

  • 你需要清除项目。
  • 一旦清理项目,然后尝试执行。
  • 删除对 R.java 类的任何导入。将光标移动到对任何按钮/布局/字符串/来自 R 的任何内容的引用,删除最后一个字符,然后按 ctrl+空格。 Eclipse 将尝试对您进行代码提示,自动导入正确的 R.java。只是为了保持凉爽、清洁和重建。
  • 这是因为您会在 Manifest 文件或 XML 文件中出现错误。请确保您在以下内容中没有任何错误。完成后,清理并导入

标签: java android


【解决方案1】:

Clean 然后是 Build Project 它肯定会在 gen 文件夹中生成 R.java 文件。如果您在布局文件 (.xml) 中有一些错误,它将不会生成,因此请确保检查您的整个项目并纠正您在 .xml 和 java 文件中的错误。

谢谢。

【讨论】:

  • 嘿..谢谢。但我在 xml 文件中没有错误。我推断这是因为我没有看到任何显示为错误的十字或红色标记。
  • 因此您只需清理并构建您的项目。在此之前检查你的清单文件,你给了包名称 package="com.emdsys.android.pacs" 像这样。
  • 是的..仍然没有生成。:(
  • 我只是在问题中提出了我的代码。请务必看一下。
  • 嘿,你的strings.xml值是在你上面提到的layout.xml文件中设置的。
【解决方案2】:

未生成 R.java 最常见的原因是资源或清单 XML 文件之一出现问题。查看问题或控制台窗口以检查/

出现的另一个问题是 ADT 插件有时会插入无关的“import R.java...”语句,尤其是在对包名称进行任何重命名或其他操作之后。通常不应该有任何这些类型的导入,它们可以被删除。

在解决任何错误之后,甚至作为额外的第一步,您会想要清理并重建您的项目。z

有时错误就像在资源文件的名称之一中使用无效字符一样简单。只有字符 a-z、0-9、下划线和句点有效。不允许使用大写字母和破折号。

编辑:

另一种可能性是过时的 ADT。只要 SDK 更新,ADT 就会过时。以下是更新 ADT 的方法:

在 Eclipse 中,转到帮助 > 检查更新。然后查找名称中带有 Android 或 ADT 的项目。选择所有这些并按照向导进行操作。

如果您收到“未找到更新”。或者在列表中看不到任何相关项目,那么您将不得不进行安装而不是更新。 This page 描述的是安装过程,不过短版是做如下。转到帮助 > 安装新软件...,然后单击添加... 按钮。

在名称字段中选择并输入名称(例如“ADT”),然后为位置输入“https://dl-ssl.google.com/android/eclipse/”。单击确定并在结果列表中至少选择“开发人员工具”。然后点击完成并按照向导进行操作。

您必须接受许可协议并说 OK 以获得验证警告。

【讨论】:

  • 嘿,我尝试检查 androidmanifest.xml 中的错误,但据我所知,这很好。可能是什么错误?谢谢
  • 您确定您的布局、字符串或其他资源文件都没有问题吗?您还可以打开“错误日志”视图进行仔细检查,但要准备好看到一堆与 Android 无关的各种 Eclipse 插件错误(显然不是真正的问题。)
  • 是的,我很确定他们都没有任何问题。
  • 你的布局文件中提到的所有字符串都定义好了吗?
  • 是的,我刚刚编辑了我的问题,以便您可以查看我的 xml 文件。请看看
【解决方案3】:

尝试更改您的清单文件。

 <uses-sdk
        android:minSdkVersion="1"
        android:targetSdkVersion="8" />

 <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

一旦您为 minsdkversion="1" 创建了一个活动,它就会起作用。但是,如果您尝试为该项目创建另一个活动,您将收到错误消息。因此,请确保您必须至少设置 minSdkVersion="7" 才能正常工作。

【讨论】:

    猜你喜欢
    • 2011-05-29
    • 2016-04-06
    • 2015-02-07
    • 2012-04-06
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多