gen已经存在,但不是源文件夹


91

我正在开发我的Android项目,删除未使用的库后,出现错误:

myproject/gen already exists but is not a source folder. Convert to a source folder or rename it

在我的活动代码中,R.java无法解析所有资源。

我尝试过,右键单击“源”选项卡下的项目=> Java构建路径=>,将gen /添加为源。但这对解决问题没有帮助...

为什么,如何摆脱这个问题?

----更新----

我发现,日食还抱怨“项目没有project.properties文件!编辑项目属性以设置一个。” ,但是我的项目下确实有project.properties文件。为什么会抱怨?我已经清理了项目并“修复了项目属性”,但没有帮助。


5
检查您的src文件夹是否包含任何gen文件夹。如果有删除它。。无需手动创建。清理项目一次。
Padma Kumar'3

嗨,我的src文件夹不包含任何gen文件夹...
Leem.fin 2012年

1
导入项目后发生在我身上
max.mustermann 2013年

1
您有一个很好的答案,当前评分为79,但尚未接受。您应该接受它。而且您的“ UPDATE”应该是一个单独的问题(您可能想看看是否有人已经回答了该问题)。
steveha 2014年

我认为我的回答将有助于解决这个问题。stackoverflow.com
questions/9738203/

Answers:


234

我遇到同样的问题。

首先有两个动作:

    1.右键单击该项目,然后转到“属性”
    2.选择左侧的“ Java构建路径”
    3.打开“源”选项卡
    4.单击“添加文件夹...”,然后选中“ gen”和“ src”

第二个:(因为先前的操作要求我删除某些内容...我不记得那是什么...)

    1.右键单击该项目,然后转到“属性”
    2.选择左侧的“ Java构建路径”
    3.打开库“选项卡”
    4.添加一个外部JAR。添加您的android目录(android-sdk \ platforms \ android-yourversion)中的Google API

现在它对我有用!


10
就我而言,我只需要做上面提到的第一部分。谢谢!
tm_forthefuture

第一个解决方案也帮助我进行了首次尝试:)
Saad Qureshi 2014年

2
工作...但是这是怎么发生的呢?愚蠢的Android。:-)
Ryan Detzel 2014年

第一步对我有用。不知道Eclipse如何或为什么决定只删除这些文件夹(.classpath似乎没有改变)...
ssawchenko

干杯..很好:)
vjamit 2015年

37

解决方案:

第1步 :

  • 右键单击该项目,然后转到“属性”
  • 选择“ Java构建路径”
  • 切换到“源”选项卡从“构建路径”上的源文件夹中删除所有源
  • 重新启动Eclipse

第2步 :

  • 右键单击该项目,然后转到“属性”
  • 选择“ Java构建路径”
  • 切换到“来源”标签
  • 单击“添加文件夹...”,然后在构建路径中检查“ gen”和“ src”源文件夹
  • 重新启动Eclipse

最后

建立项目

快乐的编码员:)


1
check gen仅解决问题,不适用于src文件夹
Manikandan 2014年

我会浪费我的一天。谢谢
Prakash 2015年

17
  1. 右键单击该项目,然后转到“ 属性”
  2. 选择Java构建路径左侧
  3. 开放源码标签
  4. 单击添加文件夹...,然后检查gensrc

那是最好的答案。简洁,问题解决,繁荣!
2015年

8

这是由于在Eclipse中使用错误的导入程序引起的。如果您有Android项目,则需要使用Android-> Existing Android Code而不是General-> Existing Projects将它们导入到工作区中。

在此处输入图片说明


3

我不得不从文件浏览器中删除eclipse中的整个gen文件夹。然后打扫干净并重建。有趣的是,这是在我运行Lint HTML报告之后发生的。


这对我也有用。刚删除了gen文件,几秒钟后重新生成,一切恢复正常。
桑迪2013年

2

gen文件夹是ADT创建R.java文件的地方,该文件指定您的资源定义。也就是说,您的资源(颜色,尺寸,布局等)将转换为代码,并放置在gen文件夹中的R.java中。

因此,在构建应用程序时,需要确保gen文件夹被IDE视为源代码文件夹,因为它包含R类。

在您的IDE中,您需要将gen文件夹标记为源文件夹,以便将其内容与您的源一起构建。

您的录取率很低。如果要有人帮助您,则需要很高的接受率。


9
但是如果没有正确答案,我该如何接受?我确实检查了答案,但没有人提供解决方案...例如,我目前的帖子,我知道gen /及其在Android中的工作方式,我正在寻求解决当前问题的方法。但还没有。
Leem.fin 2012年

1

我遇到了同样的问题,解决了以下问题:

在程序包资源管理器中,右键单击gen文件夹,找到“构建路径-用作源文件夹”,然后单击它。

这就对了。希望对您有所帮助。


1

我为具有相同问题的项目配置了SVN,删除了所有文件夹和文件,再次从SVN中检索了它,但还是没有运气。唯一有帮助的是还原更改,以及将项目删除/重新导入到工作区。希望这可以帮助


0

我上次遇到此问题是因为我将源切换到了幕后的另一个分支。一旦关闭Eclipse并重新启动,问题就消失了。


0

我有一些相同的症状,但解决方法不同:

我发现可绘制目录中有两个相互冲突的文件:icon.png和icon.xcf。这使R失效。我将icon.xcf移开了,生成了R并编译了项目。


0

转到项目属性,然后转到Java构建路径,然后删除已存在的文件夹,然后单击添加文件夹,然后添加源和源文件夹。然后按OK .......它将起作用..


0

我的解决方案是将以下内容粘贴到.classpath文件中:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

0

我们还需要检查我们的导入语句,如果已经导入了“ android.R”,则必须将其删除。


0

发生这种情况是因为您的.classpath文件以某种方式消失了。该文件包含“项目属性”下“ Java构建路径”选项卡中的所有信息。您可以手动添加所有信息,但是有解决此问题的简便方法。

如果您的计算机上有.classpath文件的副本,则只需将其复制并粘贴到您的项目目录中即可。


0

我尝试了这里给出的建议,但仍然有问题。最终,事实证明Eclipse导入错误。由于某种原因,它在导入行的开头添加了“ gen”和“ src”两个词。我不得不更改所有导入行

import gen.org.qtproject.qt5.android.bindings.QtApplication;

import org.qtproject.qt5.android.bindings.QtApplication;

一旦这样做,一切都会恢复正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.