1

我认为它可能与包有关,但我找不到错误。我的 xml 文件中没有错误(红色标记),并且我的所有可绘制对象和 xml 文件都符合命名约定。我已经尝试清理项目,并且任何地方都没有 import R.java 。

找不到 R.java 的类是:

  com.datafetcher.main.Menu.java
  com.datafetcher.showperson.MainActivity.java
  com.datafetcher.showperson.DisplayMessageActivity.java

在 Android Manifest 中,我声明:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.datafetcher"
  ...

并宣布活动:

<activity
        android:name=".main.Menu"
        android:label="@string/title_activity_display_message">
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    </activity>

    <activity
        android:name=".showperson.MainActivity"
        android:label="@string/app_name" 
        android:parentActivityName="com.datafetcher.main.Menu" >


    </activity>

    <activity
        android:name=".showperson.DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.datafetcher.main.Menu" >

    </activity>

我的 R.java 生成为 gen/com.datafetcher.R.java。为什么我不能在我的代码中使用它?

这是一个不错的 5 秒编辑。我真的应该导入 com.datafetcher.R 吗?我只是出于某种原因尝试过,它有效。我以前从未这样做过,我认为它是以某种方式隐式完成的。

4

5 回答 5

2

一种解决方案是显式导入 R.java 文件。在这个例子中,它将是:

import com.datafetcher.R;

无论您需要访问它。

于 2013-04-09T08:34:23.963 回答
1

当您从不同的包中导入 R 时,有时会发生这种情况。例如,您从 Eclipse 中的一个项目中复制文本,使用 com.example.foo 包,然后 Eclipse 为该包的 R 插入一个导入指令。但是生成的 R 属于另一个包。在这种情况下,您必须删除错误的导入。

顺便说一句,您是否看到所有未找到的资源 ID 或只有其中一些?(在同一个文件中,在不同的文件中?)

还有一种可能是你的应用包和活动包不一样。在这种情况下,您需要明确的导入语句。

在您的情况下,类com.datafetcher.Rcom.datafetcher.main.Menu属于不同的包,即com.datafetchercom.datafetcher.main。在Java中,类在没有显式导入的情况下看到同一个包中的其他类,不同包中的类只有在你导入它们之后才可见。

于 2013-04-09T08:30:02.890 回答
0

我经常遇到这个问题......通常清理或构建项目确实会解决这个问题。

有时,一般命名约定不接受某些文件名或引用(例如,ic-launcher等等)(命名文件时不接受这里-。在某些情况下,复制代码可能会触发此问题,因此请检查代码,因为它正在导入项目中未找到的类。

这主要是导致R腐败的原因。我希望这能回答你的问题。

于 2013-04-09T08:34:09.413 回答
0

我遇到了同样的问题,这是因为我忘记将 gen 文件夹添加到构建路径中。

只需右键单击 gen 文件夹,然后转到“构建路径”>“用作源文件夹”

于 2014-12-06T02:18:26.103 回答
-1

只需从项目选项卡中清理您的项目,而不是再次构建您的项目并删除 import android

于 2013-04-09T10:05:23.930 回答