我有以下目录结构:
D:\PROJECT
+---javaGradleProject1
+---javaGradleProject2
+---javaGradleProject3
\---AndroidProject
| build.gradle
| settings.gradle
\---AndroidModule
build.gradle
Android模块依赖于与根据AndroidProject在根目录中处于同一级别的所有java gradle项目。
在AndroidProject / settings.gradle中,我有:
include ':AndroidModule'
include 'javaGradleProject1'
project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1')
include 'javaGradleProject2'
project(':javaGradleProject2').projectDir = new File(rootDir, '../javaGradleProject2')
include 'javaGradleProject2'
project(':javaGradleProject2').projectDir = new File(rootDir, '../javaGradleProject2')
然后在AndroidProject / AndroidModule / build.gradle中,我的依赖项设置如下:
compile project(':javaGradleProject1')
compile project(':javaGradleProject2')
compile project(':javaGradleProject3')
当我调用
时,这种依赖结构完美地工作并构建项目gradle build
在AndroidProject / build.gradle上。
但是当我尝试将IntelliJ与当前的gradle依赖设置同步时,我会收到
Error: Unable to find module with Gradle path ':javaGradleProject1'
Error: Unable to find module with Gradle path ':javaGradleProject2'
Error: Unable to find module with Gradle path ':javaGradleProject3'
因为我的项目无法从运行配置运行(它在IDE中根本不编译)。我试图通过点击F4和模块依赖关系手动添加这些依赖项,但在同步之后我的所有更改都被覆盖(实际上,IntelliJ只是将其删除)。
我的gradle结构有什么问题吗?
我在IntelliJ IDEA 14.1.4和Android Studio 1.3上测试过它。
答案 0 :(得分:19)
我能够通过从每个我想用作依赖项的Gradle项目中删除settings.gradle文件来解决这个问题(清除此文件的内容是不够的)。
注意:由于我对Gradle和Android Studio知之甚少,因此无法提供有关此文件的存在不允许Android Studio将Gradle项目作为模块包含的信息。
答案 1 :(得分:1)
在settings.gradle
中添加模块名称时,在模块名称前添加冒号(:),例如:对于第一个,改变这个:
include 'javaGradleProject1'
project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1')
到此:
include ':javaGradleProject1'
project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1')
现在除了编译之外,IntelliJ / Android Studio还应该为您完成代码。
答案 2 :(得分:1)
在我的情况下,我不得不将外部模块名称更改为小写。
答案 3 :(得分:0)
右键单击项目,选择
“配置项目子集...”
并选择您的模块,重建您的项目。
答案 4 :(得分:0)
尝试了所有可用的解决方案,最后我在 settings.gradle 中评论了 include ':app'
,这解决了我的问题