【问题标题】:IntelliJ and Android Gradle dependencies - unable to find moduleIntelliJ 和 Android Gradle 依赖项 - 找不到模块
【发布时间】:2015-11-11 06:53:19
【问题描述】:

我有以下目录结构:

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 上对其进行了测试。

【问题讨论】:

    标签: java android android-studio intellij-idea gradle


    【解决方案1】:

    我可以通过从每个我想用作依赖项的 Gradle 项目中删除 settings.gradle 文件来解决这个问题(清除该文件的内容是不够的)。

    注意:由于我对 Gradle 和 Android Studio 知之甚少,因此我无法提供有关为什么此文件的存在不允许 Android Studio 将 Gradle 项目作为模块包含的信息。 p>

    【讨论】:

      【解决方案2】:

      右键项目,选择

      “配置项目子集...”

      然后选择你的模块,重建你的项目。

      【讨论】:

      • 当我右键单击我的项目时,我在上下文菜单中看不到此选项。你能提供更多信息吗?
      • 右键单击“项目”选项卡。选择您的项目。右键单击它,您应该会看到此选项。我今天刚刚验证了这一点。
      • 好吧,我想我的问题是我使用的是 IntelliJ IDEA 而不是 Android Studio。但是我已经解决了这个问题,所以一切都很好。无论如何,谢谢 Varun。
      • 我想如果答案对你有用,你可以投票赞成。只是增加答案的可信度。
      【解决方案3】:

      settings.gradle 中添加模块时,在模块名称前添加冒号 (:),例如对于第一个,改变这个:

      include 'javaGradleProject1'
      project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1')
      

      到这里:

      include ':javaGradleProject1'
      project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1')
      

      现在除了编译之外,IntelliJ / Android Studio 还应该给你代码补全。

      【讨论】:

        【解决方案4】:

        就我而言,我必须将外部模块名称更改为仅小写。

        【讨论】:

          【解决方案5】:

          尝试了所有可用的解决方案,最后我在 settings.gradle 中评论了include ':app',这解决了我的问题

          【讨论】:

            【解决方案6】:

            就我而言,上述答案均未解决。 最后,我转到 settings.gradle 文件并在dependencyResolutionManagement 块内,将repositoriesMode 更改为“PREFER_PROJECT”

            repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
            

            这就是我所做的一切,它就像魔术一样,也许这对你也有帮助,你可以试试。

            【讨论】: