web-dev-qa-db-ja.com

すでに存在するプログラムタイプを解決する方法:com.google.common.util.concurrent.ListenableFuture?

WorkManager 1.0.0-alpha09を使用しようとしています。このエラーが発生しています:

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)}

バージョン1.0.0-alpha08以下を使用している場合。このエラーは発生しませんが、パブリックコンストラクターが必要です

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

私の場合、次の構成をアプリのモジュールbuild.gradleに追加する必要がありました。

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

いくつかの依存関係がcom.google.guava:guavacom.google.guava:listenablefutureを一緒に使用するために発生します。依存関係の競合が発生します。

82
Anggrayudi H

https://issuetracker.google.com/issues/116154359 をご覧ください。

回避策は次のとおりです。

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

アプリのgradleファイルの最後にimplementation 'com.google.guava:guava:27.0.1-Android'を追加しただけで、エラーはなくなりました。

9
user2297550

作業マネージャーからのListenableFutureを使用しています。

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

exclude group: 'com.google.guava', module: 'listenablefuture'を除外すると、うまくいきませんでした。

内部でandroidTestImplementation "com.google.truth:truth:42"を内部的に使用するcom.google.guava:guava:25.0.1-Androidを内部で使用する依存関係を使用していました。これが問題を引き起こしていました。

com.google.truth:truth43にアップグレードすると解決しました。

0
Vraj Parikh