2014-07-15 57 views
7

所以我一直在工作在几个模块中,我的主要模块是可编译的模块,然后是一些特定的功能和库,直到我按照我想要的方式工作而不会破坏我的主模块。我现在想要将我的一个乱七八糟的模块的资源和类合并到我的'主'模块中,而不必去个别目录复制和粘贴(例如,在src中的子目录),然后系统地通过所有的弹出的错误,因为类路径已经改变了这样那样的。合并Android Studio中的模块?

有没有办法合并两个模块,而不必做上述事情,基本上合并构建,src,库?我能找到的最接近的东西是重构>移动,但就是这样,并且无法成为可行的解决方案。

+1

我建议你开始使用git来管理你的代码的不同版本。您不必担心乱糟糟的合并,并且您的代码已经备份和版本化。 –

+0

git和模块合并之间的关系是什么? –

回答

1

在构建多模块项目时,如果两个或多个模块定义了具有相同名称的资源,则将选择来自较高优先级模块的资源。

您可以通过打开项目结构(文件 - >项目结构/ Ctrl + Alt + Shift + S)并单击依赖项选项卡中的向上和向下箭头来更改模块的相对优先级。

如果要添加多个库的引用,您可以设置其相对优先级(与合并顺序)通过选择库,并使用向上和向下控制。这些工具将引用的库与您的应用程序合并,从最低优先级(列表底部)开始到最高(列表顶部)。如果多个库定义相同的资源ID,则工具将从库中选择具有更高优先级的资源。应用程序本身具有最高的优先级,并且其资源始终优先于库中定义的相同资源ID。 https://developer.android.com/sdk/installing/create-project.html

此外manifest.xml文件将会或多或少地直观合并。不同文件中相同节点的属性会相加,除非存在会引发异常的冲突,并且必须解决冲突。每个模块清单的不同节点将被添加到最终清单中。例如,您可以在库模块的manifest.xml中定义一个服务,而无需向主模块清单文件添加任何内容,一切都会好起来的。

您可以阅读更多关于清单合并here