Android Studio偶现异常目录生成:services下创建auth却生成services.auth
解决Android Studio目录创建与重构的包目录显示问题
问题根源
Android Studio默认启用了**"Compact Middle Packages"(紧凑中间包)**功能,会把多层嵌套的包目录合并显示成点分隔的形式。比如文件系统里的services/auth目录,在IDE里会显示为services.auth,但实际物理结构是正常的嵌套目录——你看到的services.auth并非单个目录,而是services下嵌套auth的组合显示形式。
正确操作步骤
要实现「把auth文件移到新auth文件夹,再整理services目录结构」的目标,按以下步骤操作:
关闭紧凑包显示(可选,让目录结构更直观)
- 点击项目视图右上角的齿轮图标
- 取消勾选
Compact Middle Packages选项 - 此时目录会以实际嵌套结构显示,能清晰看到
services和services/auth的层级关系
创建正确的auth子目录
- 在项目视图中找到
services目录,右键选择New > Directory - 直接输入目录名
auth并回车,此时会在services下生成真实的auth子目录(不会显示成services.auth的紧凑形式)
- 在项目视图中找到
移动auth文件到目标目录
- 找到要迁移的
auth文件,右键选择Refactor > Move - 在路径选择框中,直接选择
services/auth目录(若未关闭紧凑显示,选择services.auth对应的实际路径即可) - 确认后,文件会被移动到
services/auth下,不会生成多余的services.auth.auth目录
- 找到要迁移的
整理services目录(若需要)
- 在目标位置右键新建
services目录 - 选中要迁移的服务目录,右键
Refactor > Move,选择新创建的services目录完成迁移
- 在目标位置右键新建
避坑注意点
- 不要在创建目录时输入带点的名称(比如
services.auth),这会被IDE识别为创建多层包目录,导致显示混淆 - 重构移动文件时,务必确认目标路径对应的实际物理目录结构,而非IDE的紧凑显示名称
内容的提问来源于stack exchange,提问作者johnp
相关产品推荐
相关产品推荐

