【问题标题】:How to organise Eclipse workspace into folders without breaking Android如何在不破坏 Android 的情况下将 Eclipse 工作区组织到文件夹中
【发布时间】:2012-07-21 01:36:58
【问题描述】:

我一直在 Eclipse 中开发一个 Android 应用程序,它的复杂性逐渐增加,以至于我发现很难在包资源管理器中找到单个类。

Java 不是我的强项,我来自 Visual Studio/C Sharp 背景,所以我的第一个想法是将类的逻辑组移动到新的包中,有点像在 Visual Studio 中创建一个新的代码文件夹。

我创建了一个新包 com.mycompany.myapp.activities 并将所有 Activity.java 文件拖到这里。

整个过程非常糟糕,我遇到了大量的导入错误、资源构建失败等等。自动重构工具也严重破坏了我的 Manifest 文件。只是它似乎不是按照这种方式设计的——我最终将它们全部移回,并浪费了两个小时来修复它。

所以我的问题是,Eclipse 是否有某种方法可以将 .java 文件组织到逻辑子文件夹中,而不必为它们创建新包?我想为“数据模型”创建一个文件夹,为“活动”创建一个文件夹,为“接口”创建一个文件夹,依此类推。

我该怎么做呢?还是我想错了?

【问题讨论】:

  • 包更像命名空间。

标签: java android eclipse packages


【解决方案1】:

所以我的问题是,Eclipse 是否有某种方法可以将 .java 文件组织到逻辑子文件夹中,而无需为它们创建新包?

AFAIK,不。您只需要修复与将代码移动到包中相关的内容即可。

我遇到了大量的导入错误

您的应用程序的 R.java 会生成到您的应用程序包 (com.mycompany.myapp) 中,并且同一包中的任何类都会通过自动导入获得 R。驻留在其他包中的代码需要导入该类(例如,import com.mycompany.myapp.R)。因此,如果您将应用程序包中的类重构为子包,则需要添加导入。

资源构建失败

这似乎不太可能,因为资源对 Java 包一无所知。但是,没有任何细节,很难为您提供具体的帮助。

自动重构工具也把我的 Manifest 文件弄得一团糟

您需要调整 <activity> 元素以确保它们指向新重新打包的类。您重新打包的任何其他组件(例如服务)也是如此。除此之外,没有任何细节,很难为您提供具体的帮助。

它似乎不是为那样工作而设计的

当然,支持将活动移动到其他包中。 ADT 插件是否沉着地处理它的所有方面是另一个问题。如果您想出具体的可重复场景,其中 ADT 插件没有做正确的事情,请在 http://b.android.com 提交问题。

【讨论】:

  • 感谢您的信息;对于 Java 新手来说,这一切都很有用。我同意你关于资源建设的观点,写“无法引用资源”可能会更准确。我会密切关注重构工具的这个问题,因为肯定有一些东西让它非常糟糕;它用垃圾和格式错误的 XML 覆盖了我的清单的几行。我想知道是否有其他阅读者知道在 Eclipse 中以可视方式组织代码的任何其他方法,而无需将其分成包。
  • @CarlosP:“它用垃圾和格式错误的 XML 覆盖了我的清单的几行”——如果您使用的是 R20 工具,请确保更新到 R20.0.1 补丁版本。存在与格式错误的清单 XML 相关的错误,尽管我只是在尝试将数据粘贴到结构化清单编辑器选项卡中的字段时才遇到这些错误。
  • @CommonsWare - 有点话题,但我非常感谢知道 20.0.1 补丁 TIA 的 URL
  • @NickT:您可以从 SDK 管理器下载它,就像其他任何东西一样。他们在上周三或周四发布了它。如果它没有显示在您的 SDK 管理器中,请尝试清除缓存(在 SDK 管理器窗口的工具 > 选项中)。
  • @CommonsWare,谢谢,这让它出现了。我什至不知道有缓存!
猜你喜欢
  • 2010-10-11
  • 2019-02-28
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
相关资源
最近更新 更多