본문 바로가기
[Developer]/Android

[트러블슈팅] anim/fragment_fade_exit not found 에러 발생

by 해피빈이 2021. 8. 2.

Photo by Merry Amber on Unsplash

 

이번에는 버전 업그레이드 관련 에러 발생에 관해 수정을 진행하였던 에러 핸들링에 관한 내용이다.

 

컴파일 단계에서의 에러에 해당하며, 링크 에러이기 때문에 아마 apk빌드인 assembleRelease, assembleDebug 혹은 Run Device를 실행할 경우 발견될 것이다. 우선 에러의 내용은 아래와 같다.

 

* What went wrong: Execution failed for task ':app:processDebugResources'. > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction > Android resource linking failed ERROR:D:\Workspaces\AndroidStudioWorkspace\read-pictures\app\src\main\res\navigation\nav_main.xml:16: AAPT: error: resource anim/fragment_fade_enter (aka com.peopleofandroido.readpictures:anim/fragment_fade_enter) not found. ERROR:D:\Workspaces\AndroidStudioWorkspace\read-pictures\app\src\main\res\navigation\nav_main.xml:16: AAPT: error: resource anim/fragment_fade_exit (aka com.peopleofandroido.readpictures:anim/fragment_fade_exit) not found.

 

위 내용은 간단하게 말해 현재 포함되어 있는 anim/fragment_fade_enter 및 anim/fragment_fade_exit를 찾을 수 없다는 것이다.

 

이 에러가 발생한 이유는

implementation "androidx.fragment:fragment-ktx:1.3.0-alpha08"

을 사용중이었으나

implementation "androidx.fragment:fragment-ktx:1.4.0-alpha05"

으로 업데이트를 반영했기 때문이다.

 

이는 1.3.0 정식 릴리즈 단계에서 animation의 defalut enter 및 exit의 resource name이 변경되었기 때문이다.

 

이 내용은 보통 Android Navigation Component(Android Navigation Fragment)를 사용하는 경우에 발견할 가능성이 높은데, 이 경우 다음과 같이 사용하고 있었을 것으로 예상된다.

            app:enterAnim="@anim/fragment_fade_enter"
            app:exitAnim="@anim/fragment_fade_exit"
            app:popEnterAnim="@anim/fragment_fade_enter"
            app:popExitAnim="@anim/fragment_fade_exit"

 

위의 경우 다음과 같이 변경하면 해결이 가능하다.

            app:enterAnim="@anim/nav_default_enter_anim"
            app:exitAnim="@anim/nav_default_exit_anim"
            app:popEnterAnim="@anim/nav_default_pop_enter_anim"
            app:popExitAnim="@anim/nav_default_pop_exit_anim"

 


 

즉, 정리하면 다음과 같다.

만약 androidx.fragment 라이브러리를 1.3.0 정식 릴리즈 이상의 버전을 사용하기를 원한다면, 특별히 Navigation Component 사용시 애니메이션을 별도로 만들지 않고 기본을 사용하기를 원한다면, 다음과 같이 사용하면 된다.

 

app:enterAnim → @anim/nav_default_enter_anim
app:exitAnim → @anim/nav_default_exit_anim
app:popEnterAnim → @anim/nav_default_pop_enter_anim
app:popExitAnim → @anim/nav_default_pop_exit_anim

 

여기까지 잘 수행했다면, 다음과 같은 빌드 성공을 보게 될 것이다!

 

 

참고자료

Fragment 1.3.0 릴리즈노트: https://developer.android.com/jetpack/androidx/releases/fragment#1.3.0

 

Fragment  |  Android 개발자  |  Android Developers

프래그먼트 활동 내에서 호스팅되는 여러 개의 독립적인 화면으로 앱을 분할합니다. 최근 업데이트 현재 안정화 버전 다음 버전 후보 베타 버전 알파 버전 2021년 6월 30일 1.3.5 - - 1.4.0-alpha04 종속

developer.android.com

스택오버플로우 관련내용: https://stackoverflow.com/questions/67305830/where-is-anim-fragment-fade-enter-included-in

반응형

댓글