오류/안드로이드

안드로이드 스튜디오 - Could not determine the dependencies of task 오류 해결 방법

낄리 2026. 1. 7. 12:11

 

 

안녕하세요! 개발 업무를 진행하다 보면 가장 당혹스러운 순간 중 하나가

바로 "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 탭에서 CleanBuild를 순차적으로 진행합니다. 터미널(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 옵션을 활용해 더 구체적인 로그를 확인해 보시는 것을 추천드립니다.

오늘의 가이드가 여러분의 즐거운 개발 생활에 도움이 되기를 바랍니다! 도움이 되셨다면 공감과 댓글 부탁드립니다. 감사합니다.