Не удалось разрешить проект: зависимость библиотеки Android и модуля библиотеки Java

Я пытаюсь создать проект, который включает в себя библиотеку Android и библиотеку Java в Android Studio (3.1). Библиотека Java зависит от библиотеки Android. Оба модуля в моем проекте выглядят следующим образом:

MyProject    
|-android
|-java

Оба появляются в settings.gradle:

include ':android', ':java'

А библиотека Java зависит от библиотеки Android следующим образом:

java (build.gradle):

apply plugin: 'java-library'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':android')
}
...

андроид (build.gradle):

apply plugin: 'com.android.library'
...

При попытке синхронизировать проект я получаю следующую ошибку:

Failed to resolve: project::android

Почему?

P.S. Другой способ (Android в зависимости от Java) работает нормально.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
17
0
5 793
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала попробуем исправить ошибку сборки. Запустим ./gradlew build --stacktrace, чтобы увидеть более подробный вывод:

Caused by: org.gradle.internal.component.AmbiguousConfigurationSelectionException:

Cannot choose between the following configurations of project :androidLibrary:

  • debugApiElements
  • releaseApiElements

AGP не понимает, какой вариант выбрать. После проверки ответа это мы можем найти, как решить проблему:

implementation project(path: ':androidLibrary', configuration: 'default')

После попытки синхронизировать проект с этой настройкой вы увидите следующий вывод в консоли:

Ignoring dependency of module 'androidLibrary' on module 'javaLibrary'. Java modules cannot depend on Android modules

Таким образом, похоже, что то, что вы пытаетесь сделать, не поддерживается плагином. Обратитесь к аналогичный вопрос, где Ник Кардосо пытается прояснить ситуацию.

Я думал, что это может не поддерживаться. К сожалению, ни ваш ответ, ни тот, с которым вы связались, не предоставляют другого способа решить проблему (я знаю, что в другом ответе перечислены 3 «решения», но ни одно из них на самом деле не решает проблему, все они предлагают сделать что-то другое).

Sir Codesalot 16.04.2018 13:30

Дело в том, что вы не можете делать то, что хотите, это не поддерживается плагином Android Gradle. Я не понимаю, как этого добиться, учитывая существующие ограничения.

azizbekian 16.04.2018 14:30

блестящий ответ! Собственно проблема была у меня. Отличное объяснение!

Tom Rutchik 16.05.2020 03:28

Другие вопросы по теме