web-dev-qa-db-fra.com

Comment résoudre le type de programme déjà présent: com.google.common.util.concurrent.ListenableFuture?

J'essaie d'utiliser WorkManager 1.0.0-alpha09. Je reçois cette erreur:

Program type already present: 
com.google.common.util.concurrent.ListenableFuture

Message{kind=ERROR, text=Program type already present: 
com.google.common.util.concurrent.ListenableFuture, sources=[Unknown source 
file], tool name=Optional.of(D8)}

Si j'utilise la version 1.0.0-alpha08 ou moins. Je ne reçois pas cette erreur mais j'ai besoin d'un constructeur public

  public Worker (Context context, WorkerParameters workerParams) 
42
Simran Marok

Dans mon cas, j'ai dû ajouter les configurations suivantes au module de l'application build.gradle:

configurations {
    all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}

Cela se produit parce que certaines dépendances utilisent com.google.guava:guava et com.google.guava:listenablefuture ensemble. Cela provoque un conflit de dépendance.

82
Anggrayudi H

Jetez un oeil à https://issuetracker.google.com/issues/116154359 .

La solution de contournement est la suivante:

implementation("Android.Arch.work:work-runtime:1.0.0-alpha09") {
    exclude group: 'com.google.guava', module: 'listenablefuture' 
}
30
Rahul

J'ai simplement ajouté implementation 'com.google.guava:guava:27.0.1-Android' à la fin de mon fichier de gradation d'application et l'erreur a disparu.

9
user2297550

J'utilise ListenableFuture qui provient du gestionnaire de travaux.

implementation("Android.Arch.work:work-runtime:1.0.0")

Donc, exclure exclude group: 'com.google.guava', module: 'listenablefuture', n'a pas fonctionné pour moi.

J'utilisais une dépendance qui utilisait en interne androidTestImplementation "com.google.truth:truth:42" qui utilisait en interne com.google.guava:guava:25.0.1-Android. Cela causait le problème pour moi.

La mise à niveau de com.google.truth:truth vers 43 l'a résolue pour moi.

0
Vraj Parikh