删除了 gen 文件夹,eclipse 现在没有生成它 :(

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6350061/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 16:27:05  来源:igfitidea点击:

deleted gen folder, eclipse isn't generating it now :(

androideclipse

提问by LuxuryMode

I accidentally deleted my gen folder and now, predictably, my resources are all messed up. I just created a gen folder myself and tried to project > clean - that didn't work. Tried right-clicking project and going to android tools > fix project properties - didn't work. Tried unchecking build automatically...didn't work. cleaned, closed project, closed eclipse, restarted, etc, etc. Nothing is working and I keep seeing this error: gen already exists but is not a source folder. Convert to a source folder or rename it.

我不小心删除了我的 gen 文件夹,现在,可以预见的是,我的资源都搞砸了。我自己刚刚创建了一个 gen 文件夹并尝试投影 > 清理 - 没有用。尝试右键单击项目并转到 android 工具 > 修复项目属性 - 没有用。尝试取消选中自动构建...没有用。清理,关闭项目,关闭日食,重新启动等。没有任何工作,我一直看到这个错误:gen already exists but is not a source folder. Convert to a source folder or rename it.

EDIT - OK was able to generate R.java, but now I'm getting crazy stuff in the console:

编辑 - 好的能够生成 R.java,但现在我在控制台中得到了一些疯狂的东西:

[2011-06-14 17:06:11 - fastapp] Conversion to Dalvik format failed with error 1 [2011-06-14 17:06:42 - fastapp] Dx trouble processing "java/awt/font/NumericShaper.class":

Ill-advised or mistaken usage of a core class (java.* or javax.*)
when not building a core library.

This is often due to inadvertently including a core library file
in your application's project, when using an IDE (such as
Eclipse). If you are sure you're not intentionally defining a
core class, then this is the most likely explanation of what's
going on.

However, you might actually be trying to define a class in a core
namespace, the source of which you may have taken, for example,
from a non-Android virtual machine project. This will most
assuredly not work. At a minimum, it jeopardizes the
compatibility of your app with future versions of the platform.
It is also often of questionable legality.

If you really intend to build a core library -- which is only
appropriate as part of creating a full virtual machine
distribution, as opposed to compiling an application -- then use
the "--core-library" option to suppress this error message.

If you go ahead and use "--core-library" but are in fact
building an application, then be forewarned that your application
will still fail to build or run, at some point. Please be
prepared for angry customers who find, for example, that your
application ceases to function once they upgrade their operating
system. You will be to blame for this problem.

If you are legitimately using some code that happens to be in a
core package, then the easiest safe alternative you have is to
repackage that code. That is, move the classes in question into
your own package namespace. This means that they will never be in
conflict with core system classes. JarJar is a tool that may help
you in this endeavor. If you find that you cannot do this, then
that is an indication that the path you are on will ultimately
lead to pain, suffering, grief, and lamentation.

[2011-06-14 17:06:42 - fastapp] Dx 1 error; aborting
[2011-06-14 17:06:42 - fastapp] Conversion to Dalvik format failed with error 1

And eclipse can't resolve the import of my resources import com.me.fastapp.R;

[2011-06-14 17:06:11 - fastapp] 转换为 Dalvik 格式失败,错误 1 ​​[2011-06-14 17:06:42 - fastapp] Dx 问题处理“java/awt/font/NumericShaper.class” :

Ill-advised or mistaken usage of a core class (java.* or javax.*)
when not building a core library.

This is often due to inadvertently including a core library file
in your application's project, when using an IDE (such as
Eclipse). If you are sure you're not intentionally defining a
core class, then this is the most likely explanation of what's
going on.

However, you might actually be trying to define a class in a core
namespace, the source of which you may have taken, for example,
from a non-Android virtual machine project. This will most
assuredly not work. At a minimum, it jeopardizes the
compatibility of your app with future versions of the platform.
It is also often of questionable legality.

If you really intend to build a core library -- which is only
appropriate as part of creating a full virtual machine
distribution, as opposed to compiling an application -- then use
the "--core-library" option to suppress this error message.

If you go ahead and use "--core-library" but are in fact
building an application, then be forewarned that your application
will still fail to build or run, at some point. Please be
prepared for angry customers who find, for example, that your
application ceases to function once they upgrade their operating
system. You will be to blame for this problem.

If you are legitimately using some code that happens to be in a
core package, then the easiest safe alternative you have is to
repackage that code. That is, move the classes in question into
your own package namespace. This means that they will never be in
conflict with core system classes. JarJar is a tool that may help
you in this endeavor. If you find that you cannot do this, then
that is an indication that the path you are on will ultimately
lead to pain, suffering, grief, and lamentation.

[2011-06-14 17:06:42 - fastapp] Dx 1 error; aborting
[2011-06-14 17:06:42 - fastapp] Conversion to Dalvik format failed with error 1

而且eclipse无法解决我资源的导入 import com.me.fastapp.R;

回答by kabuko

  1. Right click your project
  2. Select properties.
  3. Select Java Build Path
  4. Click add Folder
  5. Select the gen folder
  6. Click OK.
  1. 右键单击您的项目
  2. 选择属性。
  3. 选择 Java 构建路径
  4. 点击添加文件夹
  5. 选择gen文件夹
  6. 单击确定。

回答by LuxuryMode

I don't know if this qualifies as an answer, but I eventually threw my hands up and just reverted to my last commit.

我不知道这是否符合回答的条件,但我最终举起了双手,回到了我的最后一次提交。

回答by Roberto Andrade

I had the same issue today after upgrading my SDK to v22 and ADT to the newer version. Apparently my SDK Manager didn't detect there were also changes to the SDK Platform-Tools and the newly introduced SDK Build-tools so it didn't upgrade tools, causing my SDK/ADT bundle to not generate contents of the /gen folder within Eclipse.

在将我的 SDK 升级到 v22 并将 ADT 升级到更新版本后,我今天遇到了同样的问题。显然我的 SDK Manager 没有检测到 SDK Platform-Tools 和新引入的 SDK Build-tools 也有变化,所以它没有升级工具,导致我的 SDK/ADT 包没有生成 /gen 文件夹中的内容蚀。

I had to go back to the SDK Manager after upgrading both SDK and ADT so it would offer me the options to install/update SDK Platform-tools to 17 (from 16 I had) and SDK Build-tools (also 17).

在升级 SDK 和 ADT 后,我不得不回到 SDK 管理器,以便它为我提供安装/更新 SDK Platform-tools 到 17(从我拥有的 16 个)和 SDK Build-tools(也是 17 个)的选项。

回答by manolovnikolay

There is probably a problem with the preparation of the R class (for instance, because of error in some layout xml). Turn the builder output to "verbose" from Preferences and see in the console where the generation breaks.

R类的编写可能有问题(例如,由于某些布局xml中的错误)。将构建器输出从首选项转换为“详细”,并在控制台中查看生成中断的位置。