web-dev-qa-db-fra.com

Impossible de résoudre le projet: Android bibliothèque et Java dépendance du module de bibliothèque

J'essaie de créer un projet qui comprend une bibliothèque Android et une bibliothèque Java dans Android Studio (3.1) . La bibliothèque Java dépend de la bibliothèque Android. Les deux sont des modules de mon projet comme celui-ci:

MyProject    
|-Android
|-Java

Les deux apparaissent dans settings.gradle:

include ':Android', ':Java'

Et la bibliothèque Java dépend de la bibliothèque Android comme ceci:

Java (build.gradle):

apply plugin: 'Java-library'

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

Android (build.gradle):

apply plugin: 'com.Android.library'
...

Lorsque j'essaie de synchroniser le projet, j'obtiens l'erreur suivante:

Échec de la résolution: projet :: Android

Pourquoi?

P.S. L'inverse (Android selon Java) fonctionne très bien.

16
Sir Codesalot

Essayons d'abord de corriger l'erreur de construction. Lançons ./gradlew build --stacktrace pour voir une sortie plus détaillée:

Causé par: org.gradle.internal.component.AmbiguousConfigurationSelectionException:

Impossible de choisir entre les configurations de projet suivantes : androidLibrary :

  • debugApiElements
  • releaseApiElements

AGP ne sait pas quelle variante choisir. Après avoir inspecté la réponse this , nous pouvons trouver comment surmonter le problème:

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

Après avoir essayé de synchroniser le projet avec cette configuration, vous verrez la sortie suivante dans la console:

Ignorer la dépendance du module 'androidLibrary' sur le module 'javaLibrary' . Java ne peuvent pas dépendre des modules Android

Il semble donc que ce que vous essayez de faire ne soit pas pris en charge par le plugin. Reportez-vous à question similaire , où Nick Cardoso essaie de clarifier le cas.

7
azizbekian