mvnrepository.com에서 runtimeonly표시가 나오는 이유

MSU·2025년 6월 4일

Android

목록 보기
34/36

mvnrepository.com

mvnrepository.com에서 힐트 라이브러리를 검색해서 안드로이드 프로젝트에 의존성을 추가하려고 할 때

이미지와 같이 implementation이 아닌 runtimeOnly로 표시되어있는걸 볼 수 있다.

runtimeOnly

여기서 runtimeOnly란 Gradle에서 사용하는 의존성 범위 중 하나로, "런타임에는 필요하지만 컴파일 시점에는 필요 없는 라이브러리"를 추가할 때 사용하는 키워드로 보면 된다.

  • 컴파일 시에는 포함되지 않지만, 앱 실행 시(runtime)에는 classpath에 포함됩니다.

  • runtimeOnly로 추가된 라이브러리는 컴파일 시 코드 참조가 불가능합니다.

  • 따라서 해당 라이브러리의 클래스를 코드에서 직접 사용하면 컴파일 오류가 발생합니다

Android에서는 거의 대부분 implementation을 사용하지만 특수한 경우에 runtimeOnly도 쓰인다고 한다.(그 예시가 로그 관련 라이브러리였는데 특정 구현체를 런타임에 로딩하는 목적으로 사용하는 예시였다. 잘 와닿지 않았다.)

결론은 implementation으로 바꿔라

어쨌든 사이트에 나와있는대로 힐트 라이브러리를 runtimeOnly로 사용하려고 하면 에러가 발생하니 implementation으로 바꿔주어야 한다!

// Hilt 핵심 라이브러리
implementation("com.google.dagger:hilt-android:2.51")
// 컴파일 타임에 필요한 어노테이션 프로세서
kapt("com.google.dagger:hilt-compiler:2.51")

// Hilt ViewModel 연동 (선택)
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")

※ chatgpt의 도움을 받아 정리했습니다.

profile
안드로이드공부

0개의 댓글