안녕하세요! 개발 업무를 진행하다 보면 가장 당혹스러운 순간 중 하나가
바로 "Could not determine the dependencies of task"라는 빌드 오류를 마주할 때입니다.
특히 안드로이드 스튜디오(Android Studio)나 스프링 부트(Spring Boot) 등 Gradle 기반 프로젝트에서 이 오류는 개발자의 발목을 잡는 단골 손님이죠.
이 에러는 단순히 한 가지 원인이 아니라 네트워크 환경, Gradle 설정, 라이브러리 충돌 등 다양한 맥락에서 발생합니다. 오늘은 이 오류의 근본적인 원인을 파악하고, 입문자부터 숙련자까지 바로 적용할 수 있는 단계별 해결 방법을 상세히 정리해 드리겠습니다.

1. 'Could not determine the dependencies' 오류의 주요 원인 분석
이 오류는 Gradle이 특정 작업을 수행하기 위해 필요한 '의존성(Dependencies)'을 찾지 못하거나, 불러오는 과정에서 논리적 충돌이 발생했을 때 나타납니다. 주요 원인은 다음과 같이 3가지 범주로 나눌 수 있습니다.
- 네트워크 및 레포지토리 접근 문제:
build.gradle에 정의된 라이브러리 저장소(jcenter, mavenCentral, google 등)에 접속할 수 없는 경우입니다. 사내 보안망, 프록시 설정, 혹은 일시적인 서버 다운이 원인이 될 수 있습니다. - Gradle 및 플러그인 버전 불일치: 프로젝트의 Gradle 버전과 사용 중인 플러그인(Android Gradle Plugin 등)의 버전이 호환되지 않을 때 발생합니다.
- 캐시 손상: 이전에 다운로드된 의존성 파일이 로컬 캐시(Local Cache) 내에서 깨졌을 경우, Gradle은 의존성 결정을 완료하지 못하고 오류를 뿜어냅니다.
따라서 이 문제를 해결하기 위해서는 '가장 간단한 재시작'부터 '설정 파일의 구조적 수정'까지 체계적인 접근이 필요합니다.
2. 단계별 해결 방법: 가벼운 조치부터 근본적 해결까지
Step 1: Gradle 캐시 클린 및 재동기화 (Sync Project)
가장 먼저 시도해야 할 방법은 기존의 엉킨 실타래를 푸는 것입니다. 안드로이드 스튜디오 사용자라면 상단 메뉴의 [File] -> [Invalidate Caches...]를 클릭한 후 모든 항목을 체크하고 [Invalidate and Restart]를 실행하세요.
그다음, Gradle 탭에서 Clean 과 Build를 순차적으로 진행합니다. 터미널(Terminal)을 이용한다면 아래 명령어를 입력해 보세요.
./gradlew clean --refresh-dependencies
이 명령어는 로컬에 저장된 의존성을 무시하고 원격 서버에서 다시 신선한 라이브러리들을 받아오도록 강제합니다.
Step 2: build.gradle 내 Repository 순서 및 구성 확인
라이브러리를 찾는 순서가 잘못되어도 오류가 발생합니다. 최근에는 jcenter()가 서비스 중단 수순을 밟으며 mavenCentral()이나 google()을 상단에 배치하는 것이 필수적입니다.
repositories {
google()
mavenCentral()
// 필요한 경우에만 하단에 배치
maven { url 'https://jitpack.io' }
}
또한, settings.gradle 파일 내에 dependencyResolutionManagement 설정이 포함된 최신 프로젝트 구조라면, 해당 파일에서도 레포지토리 설정이 올바른지 확인해야 합니다.
Step 3: 오프라인 모드(Offline Mode) 해제 여부 확인
간혹 실수로 Gradle의 'Offline Mode'를 활성화해두는 경우가 있습니다. 이 경우 새로운 의존성을 절대 받아오지 못하므로 오류가 발생합니다. 안드로이드 스튜디오 우측 Gradle 탭에서 '토글 아이콘(가로줄 모양)'을 눌러 오프라인 모드가 꺼져 있는지 반드시 확인하세요.
3. 심화 해결: 버전 호환성 및 JDK 설정 최적화
위의 기본적인 조치로 해결되지 않는다면, 조금 더 깊은 내부 설정을 들여다봐야 합니다. 특히 최근 자바(Java) 버전 업데이트가 빈번해지면서 JDK 호환성 문제가 자주 대두됩니다.
JDK 버전 일치 여부 점검
프로젝트가 요구하는 자바 버전과 환경 변수에 등록된 자바 버전이 다를 때 의존성 결정 오류가 발생할 수 있습니다. [Settings] -> [Build, Execution, Deployment] -> [Build Tools] -> [Gradle] 메뉴에서 'Gradle JDK'가 프로젝트 권장 버전(예: Java 11 또는 17)으로 설정되어 있는지 확인하세요.
Kotlin 및 Gradle 플러그인 버전 매칭
코틀린(Kotlin) 프로젝트라면 build.gradle 상단의 plugins 블록 내 버전들이 서로 조화로운지 체크해야 합니다. 특정 라이브러리는 최신 Gradle 버전에서만 작동하거나, 반대로 구버전에서만 작동하는 경우가 있으므로 공식 문서를 참고하여 classpath 버전을 조정해야 합니다.
buildscript {
dependencies {
// 이 버전이 Gradle 버전과 호환되는지 확인이 필요합니다.
classpath "com.android.tools.build:gradle:7.4.2"
}
}
4. 네트워크 보안 및 프록시 환경에서의 대처법
회사의 사내망이나 특정 방화벽 환경에서 개발 중이라면, Gradle이 외부 서버에 접근하지 못해 이 오류가 발생할 확률이 매우 높습니다.
- Gradle Properties 수정:
gradle.properties파일에 프록시 정보를 입력해야 할 수도 있습니다. - VPN 확인: 외부 저장소 접근을 차단하는 VPN이 켜져 있지는 않은지 확인하세요.
- HTTPS 체크: 최근 레포지토리들은 보안을 위해 HTTP 접근을 차단합니다. URL이
https://로 시작하는지 확인하고, 필요하다면allowInsecureProtocol = true설정을 (권장하진 않지만) 고려해 볼 수 있습니다.
핵심 요약: 문제 해결 체크리스트
포스팅 내용을 바탕으로 오류 발생 시 체크해야 할 우선순위를 정리해 드립니다. 이 순서대로 점검하시면 90% 이상의 확률로 문제를 해결할 수 있습니다.
| 순위 | 확인 사항 | 조치 방법 |
|---|---|---|
| 1 | 인터넷 연결 및 오프라인 모드 | Gradle 탭에서 Offline 모드 아이콘 해제 확인 |
| 2 | 캐시 손상 여부 | Invalidate Caches / --refresh-dependencies 명령어 실행 |
| 3 | 레포지토리 설정 | google(), mavenCentral() 선언 위치 및 존재 여부 확인 |
| 4 | JDK 및 버전 호환성 | Gradle 설정에서 JDK 버전 일치화 및 플러그인 버전 업데이트 |
마치며: Could not determine the dependencies 오류는 개발자를 괴롭히는 성가신 존재지만, 차근차근 설정을 짚어본다면 반드시 해결 가능한 문제입니다. 위 방법들로도 해결되지 않는다면 에러 메시지 하단의 --stacktrace 옵션을 활용해 더 구체적인 로그를 확인해 보시는 것을 추천드립니다.
오늘의 가이드가 여러분의 즐거운 개발 생활에 도움이 되기를 바랍니다! 도움이 되셨다면 공감과 댓글 부탁드립니다. 감사합니다.
'오류 > 안드로이드' 카테고리의 다른 글
| Cannot choose between the following variants 오류 해결 방법 (안드로이드 스튜디오) (0) | 2026.01.10 |
|---|---|
| Could not resolve all attributes 오류 해결 방법 (안드로이드 스튜디오) (0) | 2026.01.09 |
| 안드로이드 스튜디오 - Execution failed for VariantAttr 오류 해결 방법 (0) | 2026.01.08 |
| 안드로이드 스튜디오 - Gradle sync failed 오류 해결 방법 총정리 (0) | 2026.01.03 |
| 안드로이드 스튜디오 - AVD terminated 오류 원인과 해결 방법 정리 (0) | 2026.01.02 |