본문 바로가기
Android

[Android] jcenter 빌드 오류

by 박매트 2024. 11. 9.

기존에 잘 쓰던 코드가 있는데,
이 코드를 다른 분이 새로 받아서 빌드하려니까 jcenter 이슈로 안되었다는 것이다.
 
jcenter가 섭종하는 바람에,
jcenter가 가지고 있던 옛날 라이브러리들을 다운받을 수 없는 것...
 
기존에 쓰던 캐시들을 어떻게 불러와서 써야하는 것인가...
 
https://medium.com/@apfhdznzl/maven-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-61aa03bbc514

Maven 시스템에 대한 이해

라이브러리를 어디에서 가져오고 어떻게 공유할까?

medium.com

 
* 다른 팀원분이 해결
- 우선 급한 대로 깃헙에 있는 라이브러리 코드를 다운받아서 모듈로 넣어버려서 해결하셨다.
 

해결 방법

GitHub에서 라이브러리를 모듈로 추가하는 과정을 상세히 설명해드리겠습니다:

  1. 소스 다운로드:
  • https://github.com 라이브러리 접속
  • Code > Download ZIP 클릭
  • 다운로드 받은 ZIP 파일 압축 해제

 

1. 안드로이드 프로젝트에 모듈 추가

1. Android Studio에서: File > New > Import Module 선택
2. Source Directory에서: 압축 해제한 'FlexibleAdapter-master/flexible-adapter' 폴더 선택
3. Module name에서: ':flexible-adapter' 입력 (또는 원하는 모듈 이름)
 

2. settings.gradle에 모듈 추가 확인

include ':app' 
include ':flexible-adapter' // 이 줄이 자동으로 추가되었는지 확인
 
 

3. flexible-adapter 모듈의 build.gradle 수정

 

4. app/build.gradle에 의존성 추가

 

dependencies { implementation project(':flexible-adapter') }

 
프로젝트 동기화:

  • File > Sync Project with Gradle Files 클릭

문제 해결: 만약 빌드 에러가 발생한다면:

  1. Build > Clean Project
  2. Build > Rebuild Project
  3. File > Invalidate Caches and Restart

저렇게 라이브러리를 모듈로 추가하게 되면, 라이브러리 별로 aar 파일이 생기게 된다.
 
AAR(Android Archive) 파일의 동작 방식에 대해 알아보자.

  1. flexible-adapter-release.aar 파일
  • 컴파일된 코드(.class 파일들)
  • 리소스 파일(res 폴더)
  • AndroidManifest.xml
  • 의존성 정보
  • assets 등을 포함한 바이너리 파일입니다.
  1. 프로젝트에서 사용하는 방법:
// app/build.gradle dependencies { // 1. 모듈로 추가한 경우 implementation project(':flexible-adapter') // 2. 또는 직접 AAR 파일을 libs 폴더에 넣고 사용할 경우 implementation files('libs/flexible-adapter-release.aar') }
  1. AAR의 장점:
  • 라이브러리 코드를 프로젝트 내부에 포함
  • 외부 저장소(jcenter 등) 의존성 제거
  • 네트워크 없이도 빌드 가능
  • 버전 관리 용이
  • 코드 수정 및 커스터마이징 가능
  1. 파일 위치:
Copy
프로젝트 구조: /your-project /app /flexible-adapter /build /outputs /aar flexible-adapter-release.aar

이렇게 생성된 AAR 파일을 통해 라이브러리를 안정적으로 사용할 수 있습니다.


예전에 쓰던 라이브러리라 mavenCentral 저장소에는 없다. 급한 불은 껐지만 저 라이브러리가 쓰인 부분을 대체해서 걷어내도록 해봐야겠다...