Je migre vers Android studio 3.0. Ainsi, le projet devient incapable de compiler un module nommé ":animator" ; et il m'affiche cette erreur :
Error:Unable to resolve dependency for
':app@dexOptions/compileClasspath': Could not resolve project
:animators. <a
href="openFile:/home/mobilepowered/MobilePowered/MyInnovalee/trunk17-10-2017/app/build.gradle">Open
File</a><br><a href="Unable to resolve dependency for
':app@dexOptions/compileClasspath': Could not resolve project
:animators.">Show Details</a>
et l'affichage des détails donne ce log :
Unable to resolve dependency for ':app@dexOptions/compileClasspath':
Could not resolve project :animators.
Could not resolve project :animators. Required by:
project :app
Unable to find a matching configuration of project :animators:
- Configuration 'debugApiElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'dexOptions' and found incompatible value 'debug'.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and
found compatible value 'Aar'.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but
wasn't required.
- Required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
- Configuration 'debugRuntimeElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'dexOptions' and found incompatible value 'debug'.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and
found compatible value 'Aar'.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but
wasn't required.
- Required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.
- Configuration 'releaseApiElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'dexOptions' and found incompatible value 'release'.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and
found compatible value 'Aar'.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but
wasn't required.
- Required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
- Configuration 'releaseRuntimeElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'dexOptions' and found incompatible value 'release'.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and
found compatible value 'Aar'.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but
wasn't required.
- Required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.
Comme indiqué dans le [guide officiel de migration][1], cette erreur est rencontrée lorsque :
Votre application inclut un type de construction dont une dépendance de bibliothèque n'existe pas.
android {
buildTypes {
release {
...
}
dexOptions {
...
// release & debug is in project animators
matchingFallbacks = ['release', 'debug']
}
debug {
...
}
}
}
La définition de matching configuration fallbacks est clairement la bonne façon de résoudre ce problème.
[1] : https://developer.android.com/studio/build/dependencies#resolve_matching_errors
Je pense que cela vient du fichier gradle-wrapper.properties
:
make distribution url distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
et ne pas upgarder vers : distributionUrl=https\://services.gradle.org/distributions/gradle-4 ....
Il semble que ce soit un bogue de Gradle. Cela résout le problème pour moi, mais ce n'est pas une solution. Nous devons attendre une nouvelle version corrigeant ce problème.
Sur build.gradle dans le projet, définissez classpath 'com.android.tools.build:gradle:2.3.3' au lieu de classpath 'com.android.tools.build:gradle:3.0.0'.
Dans gradle-wrapper.properties, mettez https\://services.gradle.org/distributions/gradle-3.3-all.zip au lieu de https\://services.gradle.org/distributions/gradle-4.1.2-all.zip.