175 votes

Android studio 3.0 : Impossible de résoudre la dépendance pour :app@dexOptions/compileClasspath' : Impossible de résoudre le projet :animators

Je migre vers Android studio 3.0. Donc, 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
 &#39;:app@dexOptions/compileClasspath&#39;: Could not resolve project
 :animators.">Show Details</a>

et montrer les détails donne ce journal :

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

0 votes

Qu'avez-vous fait ?

0 votes

Comme première et temporaire solution pour faire fonctionner le projet avec Android studio 3.0 , je maintiens distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip , compileSdkVersion 25 y buildToolsVersion "25.0.3" (en anglais) y classpath 'com.Android.tools.build:gradle:2.3.3' (chemin de classe)

0 votes

@ImeneNoomene, la réponse de JackHuang devrait être la réponse choisie. Elle est basée sur la documentation officielle, et ce que Sackurise dit n'est pas toujours faisable (pensez aux projets React Native où la plupart de vos modules proviennent du Web).

151voto

Sackurise Points 1479

Avec Android Studio 2.3(AS) le projet fonctionne bien et je peux exécuter l'application. Après la mise à jour de l'AS vers Android Studio 3.0, j'ai également obtenu l'erreur suivante pour les bibliothèques et les types de construction.

Unable to resolve dependency for ':app@dexOptions/compileClasspath': Could not resolve project : library_Name.

Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project : library_Name.

Pour résoudre le problème, il suffit.

Quel que soit le

buildTypes{
          debug{ ... }
          release{ ... }
    }

que vous avez dans votre (app) build.gradle Vous devez inclure tous les buildTypes{ } avec les mêmes noms comme

buildTypes{
      debug{ ... }
      release{ ... }
}

à build.gradle des fichiers de Toutes les bibliothèques/modules inclus dans le projet .

nettoyer et reconstruire le projet, le problème sera résolu.

Si le problème n'est toujours pas résolu, mettez à jour le fichier gradle-wrapper.properties comme suit

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

0 votes

Cela a fonctionné, mais il y a au moins une incompatibilité avec la copie des buildTypes tels qu'ils sont. Si vous copiez le paramètre applicationIdSuffix, il vous indiquera qu'il n'est pas possible de les avoir dans la dépendance.

113 votes

Inclure tous les buildTypes { } avec les mêmes noms ? De quoi parlez-vous ?

13 votes

Je ne sais pas non plus ce que cela signifie.

130voto

JackHang Points 1141

Comme indiqué dans le guide officiel de la migration cette erreur est rencontrée lorsque :

Votre application inclut un type de construction qu'une dépendance de bibliothèque n'inclut pas.

android {
  buildTypes {
      release {
          ...
      }
      dexOptions {
          ...
        // release & debug is in project animators
        matchingFallbacks = ['release', 'debug']
      }
      debug {
          ...
      }
    }
}

L'endroit correct pour trouver l'information est maintenant cette documentation

18 votes

Cela devrait être la bonne réponse comme expliqué dans le guide officiel de migration. developer.Android.com/studio/build/

3 votes

C'est la meilleure réponse et elle a résolu mon problème. J'avais juste besoin d'utiliser matchingFallbacks = ['release', 'debug'] dans Flavors à la place.

3 votes

Juste génial ! Merci d'avoir sauvé ma journée.

95voto

X Stylish Points 1331

Assurez-vous que vous êtes dans votre projet

  1. Ouvrez les Préférences, en cliquant sur Fichier > Paramètres (sur Mac, Android Studio > Préférences ).
  2. Dans le volet de gauche, cliquez sur Construction, Exécution, Déploiement >> Gradle .
  3. Décochez / désactiver le site Offline work la case à cocher.
  4. Cliquez sur Appliquer o OK .

2 votes

La réponse la plus facile et la meilleure

1 votes

J'avais oublié que j'avais activé cette option. Je vous remercie.

1 votes

Cela devrait être la réponse. Merci de m'avoir fait gagner du temps

75voto

Anuj Garg Points 684

J'ai passé beaucoup de temps sur ce problème et aucune des solutions ci-dessus ne fonctionne pour moi. Les noms et le nombre de types de construction étaient aussi exactement les mêmes dans les projets d'application et de bibliothèque.

La seule erreur que j'ai commise est la suivante : dans le build.gradle du projet de bibliothèque, j'utilisais la ligne

appliquer le plugin : com.Android.application

Alors que cette ligne devrait être -

appliquer le plugin : com.Android.library

Après avoir effectué ce changement, cette erreur a été résolue.

10 votes

Fantastique ! C'était mon problème. Il faut noter que l'applicationId dans defaultConfig { } doit être supprimé dans la bibliothèque aussi.

1 votes

J'étais sur le point de poster cette réponse, que j'ai découverte après, comme vous, un travail difficile et frustrant et après avoir essayé toutes sortes d'options, et même plus. [Avant de la poster,] j'ai décidé de consulter le dernier message à ce sujet et voilà ! Cette réponse doit être classée par ordre de priorité.

0 votes

Je t'aime, mon frère.

66voto

Duy Phan Points 495

Modifier tous les

compile project(':library:yourproject')

a

implementation project(path: ':library:yourproject', configuration:'default')

dans votre application build.gradle. Notez la ligne avec la configuration.

1 votes

Je vois qu'il commence à fonctionner, mais lorsque je passe d'une variante de construction à l'autre : les modules de bibliothèque de débogage et d'effacement ne changent pas.

1 votes

Fier de toi, développeur vietnamien :D Une tonne de remerciements

0 votes

Si j'ai plusieurs configurations, savez-vous si je dois spécifier les buildTypes dans les paramètres de configuration ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X