我认为它可能与包有关,但我找不到错误。我的xml文件中没有错误(红色标记),并且我的所有drawable和xml文件都符合命名约定。我已经尝试清理项目,并且在任何地方都没有导入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吗?我只是因为某种原因尝试过,而且它有效。我之前从未这样做过,我以为它是以某种方式暗中完成的。
答案 0 :(得分:2)
对此的一个解决方案是显式导入R.java文件。通过这个例子,它将是:
import com.datafetcher.R;
您需要访问它的任何地方。
答案 1 :(得分:1)
有时,当您从其他软件包导入R时会发生这种情况。例如,您使用com.example.foo包从Eclipse中的一个项目复制文本,Eclipse为该包的R插入一个import指令。但生成的R属于另一个包。在这种情况下,您必须删除错误的导入。
顺便说一句,您是否看到所有资源ID未找到或仅部分? (在同一个文件中,在不同的文件中?)
另一种可能性是您的应用程序包和活动包是不同的。 在这种情况下,您需要和显式的import语句。
在您的情况下,类com.datafetcher.R
和com.datafetcher.main.Menu
属于不同的包,即com.datafetcher
和com.datafetcher.main
。在Java中,类在没有显式导入的情况下查看同一包中的其他类,不同包中的类仅在导入后才可见。
答案 2 :(得分:0)
我非常想到这个问题......通常清理或构建项目会解决这个问题。
并且有时候某些文件名或引用类似于例如一般命名约定不接受ic-launcher
等,(命名文件时不接受此-
)。复制代码时也可能触发这种情况,因此请检查代码,因为我要导入项目中找不到的类。
这主要是导致 R 腐败的原因。我希望能解决你的问题。
答案 3 :(得分:0)
我遇到了同样的问题,因为我忘了将gen文件夹添加到构建路径。
右键单击gen文件夹,然后转到&#34; Build Path&#34; &GT; &#34;用作源文件夹&#34;
答案 4 :(得分:-1)
从项目选项卡中清除项目,而不是再次构建项目并删除导入android