2015-08-18 6 views
12

Я следующую структуру каталогов:IntelliJ и Android Gradle зависимостей - не удается найти модуль

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

Android модуль зависит от всех 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 просто удаляет его).

Есть ли что-то не так в моей структуре градиента?

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

ответ

19

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

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

0

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

"Настройка Подмножество Project ..."

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

+0

Я не вижу эту опцию в контекстном меню, когда я нажимаю правой кнопкой мыши на свой проект. Не могли бы вы предоставить дополнительную информацию? – Aralox

+0

Щелкните правой кнопкой на вкладке «Проект». Выберите свой проект. Щелкните правой кнопкой мыши по нему, и вы увидите эту опцию. Я просто проверил это сегодня. –

+0

Хорошо, я думаю, моя проблема в том, что я использую IntelliJ IDEA вместо Android Studio. Но я решил эту проблему, так что все хорошо. В любом случае, спасибо Варуну. – Aralox

0

Добавьте двоеточие (:) перед именами ваших модулей при добавлении его в settings.gradle, например. для первого, это изменить:

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

к этому:

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

Теперь в дополнение к компиляции, IntelliJ/Android студия должна дать вам код завершения.

0

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

Смежные вопросы