오류/안드로이드

Could not find method compile() 오류 해결 방법 [안드로이드 스튜디오]

낄리 2026. 1. 28. 23:07

 

안녕하세요! 오늘은 안드로이드 스튜디오(Android Studio)나 자바 프로젝트를 진행할 때 빈번하게 발생하는 "Could not find method compile() for arguments..." 오류의 원인과 해결 방법을 상세히 알아보겠습니다.

최신 버전의 Gradle로 업데이트한 후 갑자기 빌드가 되지 않아 당황하셨을 텐데요. 이 문제는 결론부터 말씀드리면 Gradle의 명령어 감축(Deprecation) 정책에 따른 문법 변화 때문입니다. 어떻게 수정해야 하는지 단계별로 살펴보겠습니다.


1. 'Could not find compile()' 오류가 발생하는 근본적인 원인

과거 Gradle 4.x 버전까지는 라이브러리를 의존성에 추가할 때 compile이라는 명령어를 주로 사용했습니다. 하지만 Gradle 버전이 5.0 이상으로 올라오면서 이 명령어는 더 이상 권장되지 않는(Deprecated) 상태가 되었고, 7.0 버전부터는 아예 삭제되었습니다.

따라서 최신 Gradle 환경에서 예전 방식의 compile 코드를 사용하면, 시스템은 "그런 함수(method)를 찾을 수 없다"는 오류 메시지를 내뱉게 되는 것입니다. 이는 라이브러리 자체의 결함이 아니라, 빌드 도구인 Gradle과의 문법 불일치 문제입니다.


2. 해결 방법: compile을 새로운 키워드로 대체하기

이 문제를 해결하는 가장 확실하고 표준적인 방법은 build.gradle 파일 내의 의존성(dependencies) 섹션을 수정하는 것입니다. 기존의 compile을 목적에 맞는 새로운 키워드로 변경해 주세요.

기존 (Old) 변경 후 (New) 용도
compile implementation 일반적인 라이브러리 추가 시 사용 (권장)
testCompile testImplementation 단위 테스트용 라이브러리
runtime runtimeOnly 실행 시에만 필요한 라이브러리

✅ 수정 예시

아래와 같이 build.gradle 파일을 열어 코드를 수정해 보세요.

// 수정 전 (오류 발생)
dependencies {
    compile 'com.google.gson:gson:2.8.6'
}

// 수정 후 (정상 작동)
dependencies {
    implementation 'com.google.gson:gson:2.8.6'
}

3. implementation과 api의 차이점 이해하기

단순히 implementation으로 바꾸는 것 외에도, 프로젝트의 구조에 따라 api라는 키워드를 써야 할 때가 있습니다. 이 차이를 아는 것이 진정한 전문가로 가는 길입니다.

  • implementation: 해당 모듈 내부에서만 라이브러리를 사용합니다. 내부 구현이 변경되어도 상위 모듈을 다시 빌드할 필요가 없어 빌드 속도가 빠릅니다. 대부분의 경우 이 방식을 권장합니다.
  • api: 해당 모듈을 참조하는 상위 모듈에서도 이 라이브러리를 사용할 수 있게 노출합니다. 라이브러리 프로젝트를 만들 때 주로 사용하지만, 의존 관계가 복잡해지면 빌드 속도가 느려질 수 있습니다.

 


4. 추가 체크리스트: Gradle 버전 및 캐시 정리

코드 수정 후에도 여전히 문제가 발생한다면 다음의 추가 조치를 취해 보시기 바랍니다.

1) Gradle Wrapper 설정 확인

gradle-wrapper.properties 파일에서 Gradle 버전이 프로젝트와 호환되는지 확인하세요. 너무 낮은 버전을 사용 중이라면 최신 버전으로 업데이트하는 것이 보안과 성능 면에서 유리합니다.

2) 프로젝트 Clean 및 Rebuild

안드로이드 스튜디오 상단 메뉴에서 Build > Clean Project를 클릭한 후, 이어서 Rebuild Project를 실행하세요. 이 과정에서 남아있던 잘못된 빌드 캐시가 삭제됩니다.

3) Sync Project with Gradle Files

우측 상단의 코끼리 아이콘(Gradle Sync)을 눌러 변경된 사항을 프로젝트에 동기화해 주세요.


💡 핵심 요약 정리

  • 원인: Gradle 7.0+ 버전에서 compile 명령어가 완전히 삭제됨.
  • 해결책: build.gradle 파일에서 compileimplementation 또는 api로 변경.
  • 주의사항: 테스트 코드는 testImplementation으로, 안드로이드 테스트는 androidTestImplementation으로 각각 변경해야 함.
  • 장점: implementation을 사용하면 모듈 간 의존성이 캡슐화되어 전체적인 빌드 속도가 개선됨.