React Native Version Up.. 모든 캐시 삭제하고 시작하자
사이드 프로젝트에서 운영중인 앱이 XCode를 15.3으로 업데이트 한 후 빌드가 되지 않았습니다.
관련해서 확인 중 React Native 버전을 올리면 이슈가 해소되는 것을 확인하였는데요.
그래서 당시 버전이었던 0.72.10 버전에서 0.73.7 버전으로 올렸습니다.
react native 버전 업 후 충돌이 나는 라이브러리들까지 업데이트 후 iOS 설정을 마무리 하고 실행되는 것까지 확인을 했는데요.
Android가 이상하게 빌드 후 설치는 되지만 설치 후 아래 로그와 함게 바로 종료가 되었습니다.
(Android Studio의 Logcat을 활용하여 쉽게 로그를 확인할 수 있습니다)
java.lang.RuntimeException: Unable to instantiate application io.itmca.lifepuzzle.MainApplication package io.itmca.lifepuzzle: java.lang.ClassNotFoundException: Didn't find class "io.itmca.lifepuzzle.MainApplication" on path: DexPathList[[zip file "/data/app/~~lr2xctre0Mn3eTITJh1lfg==/io.itmca.lifepuzzle-lMchoWf_QrX7iyd1UGJ2tg==/base.apk"],nativeLibraryDirectories=[/data/app/~~lr2xctre0Mn3eTITJh1lfg==/io.itmca.lifepuzzle-lMchoWf_QrX7iyd1UGJ2tg==/lib/arm64, /data/app/~~lr2xctre0Mn3eTITJh1lfg==/io.itmca.lifepuzzle-lMchoWf_QrX7iyd1UGJ2tg==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1466)
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1395)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6959)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2236)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by: java.lang.ClassNotFoundException: Didn't find class "io.itmca.lifepuzzle.MainApplication" on path: DexPathList[[zip file "/data/app/~~lr2xctre0Mn3eTITJh1lfg==/io.itmca.lifepuzzle-lMchoWf_QrX7iyd1UGJ2tg==/base.apk"],nativeLibraryDirectories=[/data/app/~~lr2xctre0Mn3eTITJh1lfg==/io.itmca.lifepuzzle-lMchoWf_QrX7iyd1UGJ2tg==/lib/arm64, /data/app/~~lr2xctre0Mn3eTITJh1lfg==/io.itmca.lifepuzzle-lMchoWf_QrX7iyd1UGJ2tg==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
at androidx.core.app.CoreComponentFactory.instantiateApplication(CoreComponentFactory.java:52)
at android.app.Instrumentation.newApplication(Instrumentation.java:1282)
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1458)
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1395)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6959)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2236)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
MainApplication이 왜 없나 해서 관련 설정들 다 보고.. proguard도 봐보고..
캐시 문제인가 싶어 안드로이드 스튜디오 Invalidate caches도 해보고..
새로운 0.73.7 버전 React Native 프로젝트를 만들어서 비교도 해보았지만.. 해소되지 않았습니다.
정말 여러 방면으로 2시간 정도를 찾아보았는데 문제가 없어야 하는게 맞았습니다.
그래서 모든 캐시를 다 지워볼까 하고 Clean Project도 하고 Gradle 캐시까지 모두 삭제 후 실행하니 정상 실행 되었습니다..!!
아마도 Clean Project가 효과가 있었을 것 같은데요..!!
지나고나서 보니 버전 업이었다 보니 이슈가 발생했을 때 이전 버전 빌드의 영향을 받지 않기 위해 캐시를 먼저 다 삭제하는게 당연한 수순이었겠다는 생각이 듭니다.
다른 분들도 버전 업을 하다 이슈가 생길 때는 모든 캐시가 충분히 지워졌나 확인해 보시면 좋겠습니다.