9

我在 Windows 64 位上运行 Eclipse 4.2.2 Juno,以便在带有 ADT 的 Android SDK 17 上进行开发。就在今天,我清理了一个工作项目,却发现不再生成 R.java 文件。

这个问题有一个非常不同的可能原因列表。用户 Gray针对位于此处的线程,列出了一组文章,均针对不同的可能原因。

他说:

不用担心。首先你可以清理项目,然后运行项目。如果这不起作用,请点击以下链接:

然后继续列出与此问题的不同原因有关的文章,我无法包含这些链接,但可以在上面链接的问题中找到。

Gray 的评论很好地总结了导致此问题的最常见原因,包括资源文件命名约定、错误的“import Android.R”语句、XML 错误、需要清理和重建的损坏以及在 Project -> Properties 中检查 Android SDK -> Java 构建路径/库。

问题是,我的 R.java 仍然没有生成!Gray 列表中唯一剩下的可能性似乎是我的 main.xml 或 AndroidManifest.xml 已损坏,因此我将它们包括在内以确保我没有错过任何错误。

我的主要布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.bostonwalker.sseng.SSSurfaceView
    android:id="@+id/ssview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
</FrameLayout>

我的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bostonwalker.enginedev"
android:versionCode="1"
android:versionName="1.0" >

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".MainActivity"
        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>

作为一名初级 Android 程序员,这超出了我的调试能力。有人可以找到解释吗?

4

4 回答 4

11

首先检查您的资源文件中是否有任何错误。如果是这种情况,将不会生成 R.java。检查您是否已将 adt 更新到 rev 22。如果是,请按照以下步骤操作

右键单击您的项目转到属性。Java 构建路径。选择订单导出选项卡。确保选择了 Android Private Libraries。如果您引用了库项目。对图书馆项目也做同样的事情。清洁和建造。

还转到 android sdk manager 并检查您是否安装了 android sdk 构建工具。这不是必需的,但请确保您已安装 android 构建工具。

检查下面的链接

Eclipse 错误:R 无法解析为变量

于 2013-05-23T18:46:38.670 回答
1

每当您生成的 R 类未生成时,就表明由于 XML 资源的一些解析问题,生成它时存在问题。检查 IDE 中的错误控制台以找出具体错误。

常见问题有:

  • strings.xml例如,您的 中的未转义字符you're而不是you\'re
  • 布局资源中缺少layout_widthlayout_height标记
  • 缺少命名空间声明
  • Java 不支持的变量名称,例如由于大写或使用空格、连字符或其他不受支持的字符
  • XML 中的任何其他类型的语法错误
于 2014-03-09T18:18:05.293 回答
0

除了 Reghunandan 所说的,我在使用 Eclipse Indigo Win x64 更新到 SDK 22 后也遇到了同样的问题。事实证明,在更新 SDK 管理器时卸载了旧的构建工具并且从未安装过更新的工具,所以我不得不再次运行它以重新安装它们。这样做解决了我的问题,所有构建错误都消失了。

注意:我必须在错误消失之前重新启动 Eclipse,即使没有提示我这样做。

于 2013-05-28T23:55:23.700 回答
0

我遇到了类似的问题,发现我导入了引用 google-play-services.jar 的 com.google.android.gms。因此,一旦我在我的应用程序库中添加了 google-play-services.jar 的路径,就会生成 R.Java。

于 2014-09-07T10:53:53.447 回答