How to solve 'Program type already present: com.google.common.util.concurrent.ListenableFuture'?

后端 未结 4 1488
北荒
北荒 2020-12-05 06:14

I am trying to use WorkManager 1.0.0-alpha09. and getting this error:

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

Mess         


        
相关标签:
4条回答
  • 2020-12-05 06:40

    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.

    0 讨论(0)
  • 2020-12-05 06:43

    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.

    0 讨论(0)
  • 2020-12-05 06:48

    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' 
    }
    
    0 讨论(0)
  • 2020-12-05 07:01

    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.

    0 讨论(0)
提交回复
热议问题