[안드로이드 공부]/코틀린

android worker ClassNotFoundException

코코모아 2020. 9. 1. 18:13

아래는 코모스튜디오가 직접 만든 무료 앱이에요
(한 번만 봐주세요 ^^)

01

02

03

정각알림 만들기(말하는시계)

말하는 시계 (취침, 자전거) 

말하는 타이머 음성 스톱워치 

Room 에서 DB 가 만들어지고, 초기화를 할 때 

OnCreate() 에서 아래와 같이 워커를 불러서 작업을 하는데,

val request = OnTimeWorkRequestBuilder<DatabaseWorker>().build()

WorkManager.getInstance(context).enqueue(request)

enqueue 에 작업을 넣으려고 하면 아래와 같이 요상한 에러가 난다.

아무리 인터넷을 뒤져도 답이 없다.

E/AndroidRuntime: FATAL EXCEPTION: arch_disk_io_0

  java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/impl/utils/futures/AbstractFuture;
  
  Caused by: java.lang.ClassNotFoundException: androidx.work.impl.utils.futures.AbstractFuture
   
  Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.common.util.concurrent.ListenableFuture" on path: DexPathList[[zip file "/
   

이유는 간단하다,

로그를 잘 보면 listenablefuture 가 없다고 나오는데, 

아래와 같이 build.gradle 에서 제외시켰기 때문이다.

 

이 문제는 단순히 완전히 주석 처리만 하면 끝난다.

 

온갖 옵션과 빌드 버전, multidex 등을 뒤져봐야 안된다.

다른 이유로 아래와 같이 막았었는데, 워커를 사용하면서 다시 풀어줘야 한다.

언제나 에러를 잘 읽어 보면 답이 나온다....

all*.exclude group: 'com.google.guava', module: 'listenablefuture'

 

모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다.
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요.