gradleの依存関係を最新に更新していったら、WorkerManagerのListenableFutureが見つからずビルドエラーが出るようになった。
public class MyUpdateWorker extends Worker { ^ com.google.common.util.concurrent.ListenableFutureのクラス・ファイルが見つかりません エラー1個
他人の書いたライブラリで参照エラーって言われても困る。
ググってみると、ライブラリ間でListenableFutureをdependenciesだったりimplementationしてるせいで行方不明になることがあるらしい。
対処法は、ListenableFutureを明示的にimplementationすることで、参照できるようにする。
//region WorkerManager ジョブ管理 def work_version = "2.10.0" //Workerに関連した「com.google.common.util.concurrent.ListenableFutureのクラス・ファイルが見つかりません」対策 //ExoPlayerに関連した同様の事例 https://github.com/google/ExoPlayer/issues/7993 //Workerがcom.google.guava » listenablefutureをDependencies https://mvnrepository.com/artifact/androidx.work/work-runtime/2.10.0 implementation 'com.google.guava:guava:31.1-android' // (Java only) implementation "androidx.work:work-runtime:$work_version" // Kotlin + coroutines //implementation "androidx.work:work-runtime-ktx:$work_version" // optional - RxJava2 support //implementation "androidx.work:work-rxjava2:$work_version" // optional - GCMNetworkManager support //implementation "androidx.work:work-gcm:$work_version" // optional - Test helpers //androidTestImplementation "androidx.work:work-testing:$work_version" // optional - Multiprocess support //implementation "androidx.work:work-multiprocess:$work_version" //endregion
以上。