You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android项目中如何创建包装其他模块的模块?解决自动生成包问题

Android项目创建聚合模块及删除默认目录方案

一、创建包装其他模块的聚合模块(如core模块)

这类模块属于聚合型空壳模块,本身不编写业务代码,仅用于统一管理子模块依赖,让上层模块(如app)只需依赖它就能获取所有子模块的功能。具体步骤:

  1. 新建库模块
    在Android Studio中右键项目根目录 → New → Module,选择Android Library,命名为core(或其他你需要的名称)。

  2. 清理模块默认内容
    删除core模块下自动生成的java、res、test等目录,仅保留build.gradle(或build.gradle.kts)和模块目录本身。

  3. 聚合子模块依赖
    在core模块的build.gradle中添加需要包装的子模块依赖,示例:

    dependencies {
        implementation project(':module-network')
        implementation project(':module-utils')
        implementation project(':module-ui')
    }
    

    上层模块(如app)只需依赖core,即可间接获取所有子模块:

    dependencies {
        implementation project(':core')
    }
    
  4. 进阶:统一版本约束
    若需要统一管理依赖版本,可在core模块中使用java-platform插件做依赖约束,示例:

    plugins {
        id 'com.android.library'
        id 'java-platform'
    }
    
    javaPlatform {
        allowDependencies()
    }
    
    dependencies {
        // 统一Android Gradle插件版本
        api platform('com.android.tools.build:gradle:7.4.2')
        // 聚合子模块
        api project(':module-network')
        api project(':module-utils')
    }
    

二、删除创建模块时自动生成的main/test目录

创建模块时自动生成的目录无法在IDE中直接删除,是因为这些目录被标记为源码目录,可通过以下方式解决:

方法1:修改模块配置文件

打开模块的build.gradle(或build.gradle.kts),清空sourceSets的源码目录配置:

  • Groovy版本:
    android {
        sourceSets {
            main {
                java.srcDirs = []
                res.srcDirs = []
                manifest.srcFile = null
            }
            test {
                java.srcDirs = []
            }
            androidTest {
                java.srcDirs = []
            }
        }
    }
    
  • KTS版本:
    android {
        sourceSets {
            named("main") {
                java.srcDirs(emptyList<String>())
                res.srcDirs(emptyList<String>())
                manifest.srcFile(null)
            }
            named("test") {
                java.srcDirs(emptyList<String>())
            }
            named("androidTest") {
                java.srcDirs(emptyList<String>())
            }
        }
    }
    
    执行Sync Project with Gradle Files后,即可在IDE中删除这些目录。

方法2:直接在文件系统中删除

打开项目的本地文件系统(如资源管理器/访达),找到对应模块的main、test目录,手动删除后回到Android Studio,执行Sync即可。

方法3:创建模块时选择空模板

部分Android Studio版本支持创建Empty Module,在New Module的选项中选择该模板,创建出的模块不会自动生成main/test目录,直接作为空壳聚合模块使用。


内容的提问来源于stack exchange,提问作者Umidjon Kosimov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 03:42:42