我已将2.3设置迁移到3.1.2,为了测试,我在Android Studio 3.1.2中打开了一个较小的项目“proj2”。我项目的结构:
AndroidDir/
proj1/
app
lib
proj2
app
在proj2中,我使用proj2 / settings.gradle来引用proj1 lib,一个Android库:
include ':lib', ':app'
project(':lib').projectDir = new File(settingsDir, '../proj1/lib')
在2.3中,这没有任何问题,我可以在proj1和proj2中编辑我的lib代码。
在3.1.2中,proj2被视为我已经加载了proj1,而我已经打开了proj1路径。 Android Studio在标题栏中显示proj2的路径,但项目概述显示了proj1的所有模块。它试图建立proj1而不是proj2。重启无济于事。
答案 0 :(得分:3)
删除proj2 / .idea目录,然后在Android Studio中选择"文件 - >荣耀缓存/重启......"
答案 1 :(得分:1)
我在Android Studio 3.4和3.5 Canary 13上也遇到了这个问题。
更具体地说,当我如上所述尝试在settings.gradle中使用.projectDir
指令在不同项目之间共享gradle模块时,任何试图加载共享该gradle模块的第二个项目的尝试都会失败。
我当前的解决方法是使用Git将共享的gradle模块加载到另一个文件夹中,以便每个项目最终都拥有自己的该共享Gradle模块的副本,如下所示:
项目A:
include ':lib', ':app'
project(':lib').projectDir = new File("./path/to/proj1/lib")
项目B:
include ':lib', ':app'
project(':lib').projectDir = new File( "../different/path/to/copy/of/proj1/lib")
是的,此解决方法会带来一系列问题,例如必须不断同步2个文件夹,所以请
请对此问题here进行投票,以使其具有更高的优先级。