Android Studio 3.1.2误加载项目:打开proj2却识别为proj1
解决Android Studio 3.1.2中跨项目引用模块导致项目识别混乱的问题
我之前从旧版AS迁移到3.x系列时,也碰到过类似的跨项目模块引用导致IDE误识别项目的情况,结合你的场景,给你几个针对性的解决办法:
1. 彻底清理IDE缓存并重启
AS 3.x的缓存机制和2.3有不少差异,旧缓存很可能导致模块路径识别混乱。操作步骤:
- 点击顶部菜单栏的
File->Invalidate Caches / Restart - 在弹出的窗口中勾选 Clear file system cache and local history,然后点击
Invalidate and Restart - 等待IDE重启后,重新打开proj2项目
2. 调整settings.gradle的模块引用写法
虽然你的配置在AS 2.3中正常,但3.x对路径解析的严格性更高,建议换成IDE更推荐的写法:
include ':app' include ':lib' project(':lib').projectDir = file('../proj1/lib')
和你原来的写法区别在于用了AS内置的file()方法替代new File(),这个方法会更适配IDE的路径解析逻辑。
3. 删除旧的IDE配置文件,让AS重新生成
proj2目录下的.idea文件夹和.iml文件是AS自动生成的本地配置,迁移后可能残留了旧项目的关联信息:
- 完全关闭Android Studio
- 找到proj2的根目录,删除
.idea文件夹以及所有.iml文件 - 重新打开proj2项目,让AS重新生成全新的配置文件
4. 确认项目打开方式正确
有时候IDE会记住最近的项目配置,可能出现"打开proj2但加载了proj1配置"的情况:
- 点击顶部菜单栏的
File->Open - 手动选择proj2的根目录,确保在弹出的选项中选择 Open as Project(不要选Attach)
5. 检查gradle插件版本兼容性
AS 3.1.2需要搭配对应的gradle插件版本才能正常工作,确保proj2根目录下的build.gradle中配置了正确的插件版本:
buildscript { repositories { google() jcenter() } dependencies { // 必须匹配AS 3.1.2的版本 classpath 'com.android.tools.build:gradle:3.1.2' } }
同时确保gradle wrapper的版本(gradle/wrapper/gradle-wrapper.properties中的distributionUrl)是gradle-4.4-all.zip或兼容版本。
完成以上操作后,重新打开proj2,应该就能看到标题栏显示正确路径,项目概览也只会显示proj2的app模块和引用的lib模块,构建也能正常执行了。
内容的提问来源于stack exchange,提问作者Andi
相关产品推荐
相关产品推荐

