Mengatasi error Unable to instantiate appComponentFactory di Android Studio


https://unsplash.com/photos/1td5Iq5IvNc

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?


Ada komentar?

This site uses Akismet to reduce spam. Learn how your comment data is processed.