IntelliJ и Android Gradle - невозможно найти модуль

У меня есть следующая структура каталогов:

D:\PROJECT  
+---javaGradleProject1  
+---javaGradleProject2  
+---javaGradleProject3  
\---AndroidProject  
    |   build.gradle
    |   settings.gradle
    \---AndroidModule
            build.gradle

Модуль Android зависит от всех проектов java gradle, которые находятся на том же уровне в корневом каталоге, что и AndroidProject.

В 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'

и из-за этого мой проект не может быть запущен из Run Configurations (он вообще не компилируется в среде IDE). Я пытался добавить эти зависимости вручную, нажав F4 и зависимостей модулей, но после синхронизации все мои изменения перезаписаны (на самом деле IntelliJ просто удаляет его).

Что-то не так в моей структуре gradle?

Я тестировал его на IntelliJ IDEA 14.1.4 и Android Studio 1.3.

Ответ 1

Мне удалось решить эту проблему, удалив файл settings.gradle из каждого проекта Gradle, который я хотел использовать в качестве зависимости (очистка содержимого этого файла была недостаточной).

ПРИМЕЧАНИЕ. Поскольку у меня мало знаний о Gradle и Android Studio, я не могу предоставить информацию о том, почему присутствие этого файла не позволяет Android Studio включать проект Gradle в качестве модуля.

Ответ 2

Щелкните правой кнопкой мыши проект, выберите

"Настроить подпрограмму проекта..."

и выберите свой модуль, перестройте свой проект.

Ответ 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

В моем случае мне пришлось изменить имя внешнего модуля только на нижний регистр.