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.
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.