How to solve 'Program type already present: com.google.common.util.concurrent.ListenableFuture'?
I am trying to use WorkManager 1.0.0-alpha09. and getting this error:
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)}
If i use version 1.0.0-alpha08 or less. I don't get this error, but i need public constructor
public Worker(Context context, WorkerParameters workerParams)
Solution 1:
In my case, I had to add the following configurations to app's module build.gradle
:
configurations {
all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}
It happens because some dependencies use com.google.guava:guava
and com.google.guava:listenablefuture
together. It causes a dependency conflict.
Solution 2:
Take a look at https://issuetracker.google.com/issues/116154359.
The workaround is:
implementation("android.arch.work:work-runtime:1.0.0-alpha09") {
exclude group: 'com.google.guava', module: 'listenablefuture'
}
Solution 3:
I merely added implementation 'com.google.guava:guava:27.0.1-android'
at the end of my app gradle file and the error went away.
Solution 4:
I am using ListenableFuture
that comes from the work manager.
implementation("android.arch.work:work-runtime:1.0.0")
So excluding exclude group: 'com.google.guava', module: 'listenablefuture'
, didn't work for me.
I was using a dependency that internally used androidTestImplementation "com.google.truth:truth:42"
that internally used com.google.guava:guava:25.0.1-android
. This was causing the problem for me.
Upgrading com.google.truth:truth
to 43
solved it for me.