Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不破坏Android的情况下将Eclipse工作区组织到文件夹中_Java_Android_Eclipse_Packages - Fatal编程技术网

Java 如何在不破坏Android的情况下将Eclipse工作区组织到文件夹中

Java 如何在不破坏Android的情况下将Eclipse工作区组织到文件夹中,java,android,eclipse,packages,Java,Android,Eclipse,Packages,我一直在Eclipse中开发一个Android应用程序,它的复杂性逐渐增加,我发现很难在PackageExplorer中找到单个类 Java不是我的强项,我来自VisualStudio/C,所以我的第一个想法是将类的逻辑组移动到新的包中,有点像在VisualStudio中创建新的代码文件夹 我创建了一个新包com.mycompany.myapp.activities,并将所有Activity.java文件拖到这里 整个过程非常糟糕,我遇到了大量导入错误,资源无法构建,等等。自动重构工具也把我的清

我一直在Eclipse中开发一个Android应用程序,它的复杂性逐渐增加,我发现很难在PackageExplorer中找到单个类

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

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

整个过程非常糟糕,我遇到了大量导入错误,资源无法构建,等等。自动重构工具也把我的清单文件搞得一团糟。它看起来不像是被设计成那样工作的——我最终把它们都搬了回去,并浪费了两个小时来修理它

所以我的问题是,Eclipse是否有办法将.java文件组织到逻辑子文件夹中,而不必为它们创建新的包?我想为“数据模型”创建一个文件夹,一个用于“活动”,一个用于“接口”等等

我该怎么做呢?还是我想的不对

所以我的问题是,Eclipse是否有办法将.java文件组织到逻辑子文件夹中,而不必为它们创建新的包

好的,不用了。你只需要修改一下将代码移动到包中的相关内容

我有很多导入错误

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

无法生成资源

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

自动重构工具也把我的清单文件搞得一团糟


您需要调整您的

包,使其更像名称空间;对于Java新手来说,这一切都很有用。我理解你关于资源建设的观点,写“资源不能被引用”可能更准确。我会用重构工具关注这个问题,因为肯定有什么东西把它绊倒了;它用垃圾和格式错误的XML重写了我清单的几行。我想知道是否有其他读者知道在Eclipse中以可视化方式组织代码而不将其拆分为包的其他方法。@CarlosP:“它用垃圾和格式错误的XML重写了我清单中的几行”——如果您使用的是R20工具,请确保更新到R20.0.1补丁版本。虽然我只是在试图将数据粘贴到结构化清单编辑器选项卡中的字段时才遇到与格式错误的清单XML相关的错误。@Commonware-稍微有点像主题,但我非常希望知道20.0.1修补程序的URL,TIA@NickT:与其他内容一样,您可以从SDK管理器下载它。他们在过去的周三或周四发布了它。如果它没有显示在SDK管理器中,请尝试清除缓存(在SDK管理器窗口的工具>选项中)。@commonware,谢谢,这样它才会显示出来。我甚至不知道有个缓存!