创建电话模块并将其移动到子目录

时间:2016-09-08 14:52:47

标签: android android-studio module

摘要

我正在努力扩展我的Android库,并且在库中我想要一个能够在他们自己的模块中添加许多不同且可用的示例Android应用程序的目录。

我已经创建了一个示例应用程序,我想移动并重命名,我猜;但是,我需要能够轻松添加其他内容。

以前的尝试

这两个解决方案允许我在结构上完全创建模块; 但是,这些解决方案只会创建一个标准的java模块。我特别需要一个Android App模块。

我尝试的另一个选项是直接使用Android Studio的新模块向导。 此选项允许我创建Android App模块;但是,它不会把它放在正确的结构中。

我拥有什么

Project Module
|- Android Library Module
|- "samples" Android App Module (Complex)

我想要什么

Project Module
|- Android Library Module
+- "samples" Directory
   |- "sample-basic" Android App Module
   |- "sample-complex" Android App Module

那我错过了什么?我见过其他git repos,它们在子目录中有Android应用程序模块。所以它似乎是可能的。

1 个答案:

答案 0 :(得分:1)

以下是获取上述所有内容的正确方法......

1。创建基本Android模块

首先使用Android Studio's New Module Wizard创建2个Android模块;一个用于基本样本,另一个用于深入样本。

2。代码

settings.gradle文件中,复制以下代码。

这将创建3 modules作为项目的直接子模块。需要进一步的步骤来创建subdirectory并将正确的模块放入其中。

所有这一切都没有为子目录创建模块

请注意:这个结果是3个基本的java模块。但是,:accessibility模块之前已经声明为Android Library Module。所以真正的结果是创建了2个Java Modules

这不是我想要的......但它非常接近!

include ':accessibility', ':samples-basic', 'samples-indepth'

// Set the root projects name - the Project Module
rootProject.name = 'accessibility'

// For each module within the project - i.e. "app" module, etc...
rootProject.children.each { project ->

    // Only modify modules that contain the selected word. Note: do whatever logic is needed to sort and move the correct modules
    if (project.name.contains("samples")) {

        // Move the module into a specific subdirectory
        String projectDirName = "samples/$project.name"
        project.projectDir = new File(settingsDir, projectDirName)

        assert project.projectDir.isDirectory()
        assert project.buildFile.isFile()

    }
}

3。移动Android示例模块

现在您已完成所有代码,只需获取2个Android示例模块并将它们移动到samples子目录即可。移动完成后,您就完成了

结果

"Accessibility" Project Module
|- "accessibility" Library Module
+- "samples" Directory
   |- "samples-basic" Android App Module
   |- "samples-complex" Android App Module