如何在子目录中移动模块?

How can I move a module inside a subdirectory?

我需要写很多琐碎的模块,我不想隐藏它们之间的主要模块。出于这个原因,我想要一个这样的目录树:

Project
|-module1
|-module2
+-directory
    |-module3
    |-module4
    +-module5

问题:如果我将模块移到新文件夹中 Android Studio 找不到它们。

所以,我的问题是:如何在目录中移动模块?

您只需将它们添加为新模块即可。

  1. 通过以下方式打开新模块对话框:
    • 文件 > 新模块;或
    • 文件 > 项目结构,[模块] 然后单击添加图标 和 select 新模块
  2. Select 模块类型,我假设你的情况是 Android。然后select Android 模块类型
  3. 点击下一步
  4. 输入或使用浏览按钮 打开文件选择器并输入 "Content Root" 作为 Project\directory\module3
  5. "module file location" 应更新以匹配内容根目录,但请仔细检查并在必要时进行设置
  6. 点击完成
  7. 对其他模块重复

默认情况下,在项目工具window树中,它会显示一个平面结构:

Project
+-Module1
+-Module2    
+-Module3
+-Module4
+-Module5

如果要在项目树结构中添加层次结构:

  1. 打开项目结构对话框(文件 > 项目结构)
  2. Select 左侧的 modules 面板。
  3. Select module3 然后右击它。 Select 将模块移动到组 > 新建顶级组
  4. 输入名称并单击“确定”。
  5. 对于所有其他子模块,select它们,右键单击,然后 select 将模块移动到组 > {yourGroupName} > 到这个组

现在在项目工具 window 中,这些模块将被分组到一个层次结构中。

我建议关闭 Android Studio 中的项目,手动移动 OS 中的目录,并更新项目的 settings.gradle文件指向新位置的模块。使用您的示例,更新后的 settings.gradle 文件将如下所示:

include ':module1'
include ':module2'
include ':directory:module3'
include ':directory:module4'
include ':directory:module5'

然后在 Android Studio 中重新打开项目,并确保它将项目与新的 Gradle 文件同步(它应该会自动执行,但如果没有,请单击它的工具栏按钮)。

您现在可以使用

定义模块的位置
include ':myModule'    

project(':myModule').projectDir = new File('dir/myModule')

此外,您必须删除模块目录下的 .iml 文件,让 Android Studio 重新创建它们。