이번에는 버전 업그레이드 관련 에러 발생에 관해 수정을 진행하였던 에러 핸들링에 관한 내용이다.
컴파일 단계에서의 에러에 해당하며, 링크 에러이기 때문에 아마 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
스택오버플로우 관련내용: https://stackoverflow.com/questions/67305830/where-is-anim-fragment-fade-enter-included-in
'[Developer] > Android' 카테고리의 다른 글
scrcpy: 안드로이드 화면을 PC에서 미러링 하기 (5) | 2022.02.19 |
---|---|
Wear OS 시계모드 구현 기본 (2) | 2021.08.08 |
Android Studio 2020.3.1 Arctic Fox Stable 업데이트 정리 (1) | 2021.07.31 |
Android Dumpstate 로그 추출 및 분석(2/2) (0) | 2021.07.13 |
Android Dumpstate 로그 추출 및 분석(1/2) (2) | 2021.07.12 |
댓글