gpt4 book ai didi

Android WorkManager ListenableWorker 实现 : ListenableFuture interface isn't found

转载 作者:行者123 更新时间:2023-11-29 22:57:05 33 4
gpt4 key购买 nike

我正在尝试实现 Android ListenableWorker startWork() method返回 com.google.common.util.concurrent.ListenableFuture 接口(interface),但最后一个接口(interface)不可用。我还需要 com.google.common.util.concurrent.SettableFuture 实现,这也是不可用的。我应该包含哪个模块才能使这些类型可用?

app.gradle

...
dependencies {
...
implementation "androidx.work:work-runtime-ktx:2.1.0"
}

MyWorker.kt

class SendRegistrationTokenWorker(
context: Context,
params: WorkerParameters,
) : ListenableWorker(context, params) {
override fun startWork(): ListenableFuture<Result> { ... }
}

据我了解,我想要的依赖项是 com.google.guava:listenablefuture:1.0,但是 androidx.work:work-runtime-ktx:2.1.0已经依赖于它,以及应用程序使用的其他库。问题是 com.google.guava:listenablefuture:1.0 解析为 com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava ,它不包含所需的类型,它只是一个模拟依赖项。

我尝试添加单独的 com.google.guava:listenablefuture:1.0 依赖项,但它也解析为 com.google.guava:listenablefuture:9999.0-empty-to-avoid-与 Guava 冲突,没有任何变化。

如果我强制 listenablefuture 版本为 1.0,我会得到错误:

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

android {
...
configurations.all {
resolutionStrategy {
force "com.google.guava:listenablefuture:1.0"
}
}
}
...

最佳答案

最后,我找到的最简单的解决方案是将整个 guava 依赖项添加到项目中。我不确定这是正确的方法,因为我只使用了库中的几种类型。但是,这是我正在寻找的简单解决方案。

build.gradle

dependencies {
...
implementation 'com.google.guava:guava:28.0-android'
}

我还找到了 Threading in ListenableWorker Android文档中关于ListenableWorker实现的部分,建议使用councurrent-futures CallbackToFutureAdapter,如果应用程序不使用 Guava 。我试过了,但是解决方案没有解决错误,找不到 ListenableFuture

关于Android WorkManager ListenableWorker 实现 : ListenableFuture interface isn't found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57307201/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com