Jadi begini, sejak update Android Studio ke versi 4.0, kadang kala saya mendapati error `Unable to instantiate appComponentFactory`. Kejadiannya tidak sering, tapi sekalinya kena, kita tidak bisa run aplikasi ke emulator lagi. Error lengkapnya seperti ini:
E/LoadedApk: Unable to instantiate appComponentFactory java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[zip file "/data/app/com.app.kamu-Xb-hbiJoKKXTnR1JW0gSsw==/base.apk"],nativeLibraryDirectories=[/data/app/com.app.kamu-Xb-hbiJoKKXTnR1JW0gSsw==/lib/x86, /data/app/com.app.kamu-Xb-hbiJoKKXTnR1JW0gSsw==/base.apk!/lib/x86, /system/lib, /system/product/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.LoadedApk.createAppFactory(LoadedApk.java:256) at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:855) at android.app.LoadedApk.getClassLoader(LoadedApk.java:950) at android.app.LoadedApk.getResources(LoadedApk.java:1188) at android.app.ContextImpl.createAppContext(ContextImpl.java:2462) at android.app.ContextImpl.createAppContext(ContextImpl.java:2454) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6343) at android.app.ActivityThread.access$1300(ActivityThread.java:219) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) … dan seterusnya (lumayan panjang)
Dari hasil tanya-tanya di grup kantor, untuk mengatasi error itu adalah dengan menghapus folder .gradle dan .cache, lalu restart Android Studionya. Tak usah melakukan invalidate restart karena katanya tidak berpengaruh (meski saya coba juga sih).
Apakah berhasil? Tentu saja. Tapi tidak sepenuhnya berhasil. Error itu masih muncul dan aplikasi kita tidak bisa dijalankan di emulator.
Sementara dari hasil googling dan ubek-ubek stackoverflow, error ini katanya merupakan kutu di Android Studio. Di utas ini ada beberapa macam solusi, namun tidak semua saya coba, terutama yang mengharuskan mengedit proguard.
Nah bagi yang mengalami hal serupa, ada satu cara lain yang bisa dilakukan, yaitu dengan ganti saja emulatornya. Jadi siapkan (minimal) 2 emulator. Ketika emulator yang satu kena error ini, tutup saja emulatornya dan nyalakan emulator kedua. Begitupun jika emulator kedua ini mengalami hal yang sama, tutup emulator kedua dan nyalakan emulator pertama.
Ribet bukan?