크로스 플랫폼/React-Native <JSX>

[React-Native] android :app:processDebugResources Could not find com.facebook.fresco:fresco:2.2.0 에러 해결

TaeGyeong Lee 2023. 6. 23. 21:56

발생 에러

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:processDebugResources'.
> Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
   > Could not find com.facebook.fresco:fresco:2.2.0.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
       - file:/Users/taegyeonglee/Desktop/CG/Test634/node_modules/react-native/android/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
       - file:/Users/taegyeonglee/Desktop/CG/Test634/node_modules/jsc-android/dist/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
       - https://dl.google.com/dl/android/maven2/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
       - https://www.jitpack.io/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom

 

해결 방법

먼저 빌드를 시도하는 앱의 flipper 버전을 확인해야 합니다. 프로젝트/android 디렉토리를 안드로이드 스튜디오로 열어 주세요. gradle script 목록에서 build.properties 파일을 열어 FLIPPER_VERSION 를 확인해 주세요. FLIPPER_VERSION이 0.99.0 미만일 때에만 이 해결방법은 도움이 될 수 있습니다.

만약 FLIPPER_VERSION 이 0.99.0 미만이라면 FLIPPER_VERSION을 0.99.0으로 수정해 주세요. 그 다음 다시 빌드를 시도해 보세요.

# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.99.0

 

왜 그럴까?

제 프로젝트 기준 FLIPPER_VERSION 은 0.99.0 보다 전엔 0.54.0 이었습니다.

build.gradle(:app) 파일의 일부를 보겠습니다. 아래와 같이 디버그 모드에서 실행시 flipper-fresco-plugin:0.54.0이 의존성 목록에 포함된다고 해석할 수  있습니다.

debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

 

자 그럼 flipper-fresco-plugin:0.54.0의 의존성 목록은 무엇일까요? 한번 확인해 보았습니다. 이 링크를 참고해 주세요.

https://central.sonatype.com/artifact/com.facebook.flipper/flipper-fresco-plugin/0.54.0

 

com.facebook.fresco 의 fresco 2.2.0 버전을 의존성 목록에 포함하고 있네요. 이러한 정보를 가지고 gradle 스크립트는 중앙 저장소에서 조건에 맞는 의존성 목록을 가져오게 됩니다. 그럼 중앙 저장소에 해당 버전이 존재하는 지 확인해 봅시다.

https://repo.maven.apache.org/maven2/com/facebook/fresco/fresco/

???

 

중앙 저장소 https://repo.maven.apache.org/maven2/com/facebook/fresco/fresco/ 에 2.2.0 버전이 없습니다. flipper-fresco-plugin 의 버전이 0.54.0 (FLIPPER_VERSION)일 때, 중앙 저장소에 존재하지 않는 fresco 버전 2.2.0을  가져오려고 시도하고 있었습니다.

 

FLIPPER_VERSION 0.54.0 버전이 최신 버전이었을 땐 있었겠죠... 근데 23년 6월 지금은 없습니다. 결국 버전 호환성 문제인 것이죠. FLIPPER_VERSION 0.99.0 버전도 최신 버전은 아닙니다.

하지만 적어도 의존성 문제는 해결되었습니다. 따라서 0.99.0 버전으로 바꾸어 주어야 합니다. (0.98.0 버전은 빌드는 정상적으로 되나 android 13 에서 정상적으로 실행 되지 않았습니다.)

 

React-Native 개발의 길은 참 험난합니다,,,,