简体   繁体   中英

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

I am trying to use WorkManager 1.0.0-alpha09. I am 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) 

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.

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

我只是在我的app gradle文件末尾添加了implementation 'com.google.guava:guava:27.0.1-android' ,错误就消失了。

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM