Модуль Gradle и подмодуль git

У меня есть проект библиотеки, называемый инструментарий с двумя core и database , с этой конфигурацией:

settings.gradle

 include ':core' include ':database' 

Core build.gradle

 dependencies { compile 'com.android.support:support-v4:20.+' compile 'com.jakewharton:butterknife:5.1.+' compile 'com.google.code.gson:gson:2.2.+' compile 'uk.co.chrisjenx:calligraphy:0.7.+' compile files('libs/flurry-3.4.0.jar') } 

База данных build.gradle

 dependencies { compile project(':core') } 

Это нормально, когда запускайте мои тесты в этом проекте библиотеки, но я хочу добавить эту библиотеку в качестве подмодуля git для другого проекта, этот проект имеет следующую конфигурацию:

settings.gradle

 include ':app-tablet' include 'libraries:float-hint' include 'libraries:toolkit:core' include 'libraries:toolkit:database' include 'libraries:twoway-view:TwoWayView' 

App build.gradle

 dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' compile 'com.google.android.gms:play-services:+' compile 'com.j256.ormlite:ormlite-android:4.48' compile 'com.jayway.android.robotium:robotium-solo:5.2.1@jar' compile 'com.squareup.dagger:dagger:1.2.+' compile 'com.squareup.picasso:picasso:2.1.1@jar' compile files('libs/YouTubeAndroidPlayerApi.jar') compile project(':libraries:float-hint') compile project(':libraries:porquenao-toolkit:core') compile project(':libraries:porquenao-toolkit:database') compile project(':libraries:twoway-view:TwoWayView') } 

И когда я пытаюсь скомпилировать, я получаю следующее:

 $ gradlew assembleDebug -d 12:10:46.283 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception. 12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] 12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] * Where: 12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] Build file '/path/libraries/toolkit/database/build.gradle' line: 16 12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] 12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] A problem occurred evaluating project ':libraries:toolkit:database'. 12:10:46.287 [ERROR] [org.gradle.BuildExceptionReporter] > Project with path ':core' could not be found in project ':libraries:toolkit:database'. 12:10:46.308 [ERROR] [org.gradle.BuildExceptionReporter] ... more 12:10:46.308 [LIFECYCLE] [org.gradle.BuildResultLogger] 12:10:46.308 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED 

Я знаю, что проблема связана с путями :core и libraries:toolkit:core но как решить это правильно?

У вас есть проблема с именами, которые ваши приложения обрабатывают.

Установки.gradle:

include 'libraries:toolkit:core'

И build.gradle имеет:

 compile project(':libraries:porquenao-toolkit:core') 

Предполагая, что вы исправите это, вы все равно будете иметь ошибку.

Модуль базы данных будет пытаться скомпилировать «: core» , но при использовании в приложении основной модуль имеет другой путь: «: libraries: porquenao-toolkit: core»

Один из способов обойти это – включить основную библиотеку как «: core» в оба проекта, но дать ей другой путь к проекту.

Ваши файлы settings.gradle будут выглядеть так:

Инструментарий:

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

Приложение:

 include ':core' project(':core').projectDir = new File(rootDir, 'libraries/porquenao-toolkit/core')