RuntimeException: Tidak dapat membuat instance aplikasi


97

Ketika saya menjalankan aplikasi saya, setiap kali saya mendapatkan pengecualian di bawah ini di logcat saya:

 04-14 09:29:53.965: W/dalvikvm(1020): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
    04-14 09:29:53.985: E/AndroidRuntime(1020): FATAL EXCEPTION: main
    04-14 09:29:53.985: E/AndroidRuntime(1020): java.lang.RuntimeException: Unable to instantiate application   android.app.Application: java.lang.NullPointerException
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.ActivityThread.access$1300(ActivityThread.java:123)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.os.Handler.dispatchMessage(Handler.java:99)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.os.Looper.loop(Looper.java:137)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.ActivityThread.main(ActivityThread.java:4424)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at java.lang.reflect.Method.invokeNative(Native Method)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at java.lang.reflect.Method.invoke(Method.java:511)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at dalvik.system.NativeStart.main(Native Method)
    04-14 09:29:53.985: E/AndroidRuntime(1020): Caused by: java.lang.NullPointerException
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.LoadedApk.getClassLoader(LoadedApk.java:305)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.LoadedApk.makeApplication(LoadedApk.java:474)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     ... 11 more

Catatan: Saat saya meng-uninstal aplikasi dari emulator dan menjalankannya, saya tidak mendapatkan pengecualian ini, tetapi ketika saya menjalankan kembali aplikasi yang diinstal di emulator, saya mendapatkan ini. Tolong bantu.


1
jika paket Anda adalah android.app.Application, coba ubah nama paket, agak mencurigakan, terlihat seperti paket Sistem.
Ini tidak kosong

Pastikan juga aplikasi Anda dideklarasikan di Manifest.
dcow

Perluas baris Disebabkan oleh: java.lang.NullPointerException. Harus ada referensi ke baris dalam aplikasi Anda di masa mendatang
Zaid Daghestani

Tidak, saya tidak memiliki paket seperti yang Anda sebutkan di lamaran saya. Aplikasi dideklarasikan dalam Manifes sebagai: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.infy.meetingmanager.activity" android:versionCode="1" android:versionName="1.0" > <application...> <activity android:name=".LoginActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
user182944

Versi Android apa aplikasi Anda berjalan, 4.0?
yorkw

Jawaban:


194

Ini adalah pesan kesalahan panjang yang dimunculkan oleh framework yang mendasari saat dalvik menginstal ulang file .apk dan mencoba menggunakan kembali atau mendaur ulang aktivitas / tampilan yang dibuka sebelumnya dari paket yang sama (jika Anda belum menutup aplikasi yang diinstal sebelumnya). Ini tidak ada hubungannya dengan aplikasi Anda, terlebih lagi, sangat kecil kemungkinannya aplikasi Anda akan macet atau crash karena pesan kesalahan yang panjang ini pada perangkat pengguna akhir.

Tampaknya log kesalahan verbose dalvik ini hanya terjadi pada sistem Android 4.0, saya telah mengujinya sendiri di lingkungan yang menjalankan Android 3.2 dan 2.3.3, di mana Anda tidak dapat mereplikasi untuk menampilkan pesan ini pada keduanya. Pertanyaan serupa telah dibahas sebelumnya di sini dan seseorang telah mengisi laporan bug di Android Issues Tracker .

Saya rasa Anda tidak perlu terlalu khawatir tentang log kesalahan verbose ini saat ini, jika Anda melihat lebih banyak log sebelum dan sesudah kesalahan merah ini di Logcat, Anda dapat melihat cerita lengkapnya dan menemukan bahwa aktivitas / tampilan sebelumnya dibuka (yang ditandai sebagai status mati) terbunuh dan yang baru diinstal ulang akhirnya muncul.


2
Hai, Tidak, aplikasi saya tidak macet atau macet karena pengecualian itu, Ini berfungsi dengan baik bahkan setelah pengecualian dilemparkan. Saya baru saja melihat pengecualian di logcat dan tidak menyadarinya, maka saya berpikir untuk menanyakan hal yang sama. Terima kasih atas infonya, yang sangat berguna.
pengguna182944

3
Saya mendapatkan ini di konsol pengembang aplikasi produksi. Tampaknya ini terutama terjadi dengan 4.2, tetapi saya juga telah melihat versi lain (4.1, 4.4).
Dustin

3
@Dustin, apakah Anda memecahkan ini? Karena pengecualian ini melaporkan paling banyak 34 / minggu! dan banyak keluhan di pesan pengguna!
thecr0w

1
Saya masih mendapatkannya secara lokal di Android 5.1.1.
Sam

1
Itu terjadi bahkan pada 5.1.1. Apa yang sedang terjadi?
Pengembang android

16

Saya menyadari ini adalah pertanyaan yang sangat lama, tetapi ini mungkin berguna. Saya telah menemukan bahwa ketika saya mengamati kesalahan ini dalam pengembangan saya sendiri, itu karena contoh aplikasi saya yang berjalan sebelumnya tidak menutup dengan rapi, misalnya dengan mematikan utas latar belakang sebelum keluar.


Ya, menekan tombol beranda di ponsel saya lalu menjalankannya lagi akan menghapus kesalahan ini untuk saya juga.
Penyerang

Masuk akal, tapi bagaimana sebuah aplikasi bisa menutup dengan rapi ketika terbuka di depan pengguna dan kemudian Android membunuhnya untuk meningkatkannya?
Sam

Mungkin Android memanggil metode onDestroy () dalam skenario itu, bukan? Orang akan berharap begitu.
JulianSymes

2

Saya mendapatkan kesalahan yang sama ketika saya mencoba terhubung ke internet dengan JSOUP di dalam kelas aplikasi saya. Itu rumit, karena aplikasi berjalan di emulator tetapi tidak di perangkat sebenarnya. Ternyata, saya hanya menggunakan pustaka JSOUP yang salah. Memuat halaman di utas baru memecahkan masalah saya.

Semoga saya membantu seseorang.


2

Semoga ini bisa membantu seseorang. Buka aplikasi yang berjalan di emulator Anda dengan mengklik ini:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Tutup aplikasi yang Anda coba instal, lalu jalankan lagi. TIDAK perlu mencopot / menginstal ulang aplikasi atau membersihkan proyek.


1

Bagi saya itu membantu membersihkan Proyek. Di Eclipse:
- Project -> Clean
Harap kendalikan Project itu -> Build Automatically is CHECKED
Jika gen-Folder kosong setelah itu, ada kesalahan di res-folder. Seringkali, kesalahan dalam folder-res tidak ditunjukkan oleh tanda silang merah! Selamat mencoba dan salam


Tidak membantu saya. Saat saya menggunakan adbuntuk mengupgrade dari salah satu aplikasi produksi saya ke yang lain, masalah ini terjadi, jadi tampaknya tidak spesifik untuk IDE dalam kasus saya.
Sam

0

Dalam kasus saya, kesalahan ini muncul setelah saya mengimpor proyek Android Maven ke ruang kerja baru, dan folder SRC tidak secara otomatis ditambahkan ke jalur pembuatan.

Klik kanan pada project / Build path / Configure build path / Source - periksa apakah ada sumber yang hilang.


0

Saya punya masalah yang sama. Membersihkan proyek berhasil untuk saya.

Pilih proyek pergi ke Proyek -> Bersihkan


Tidak membantu saya. Saat saya menggunakan adbuntuk mengupgrade dari salah satu aplikasi produksi saya ke yang lain, masalah ini terjadi, jadi tampaknya tidak spesifik untuk IDE dalam kasus saya.
Sam

0

Dalam kasus saya, logcat tunjukkan bahwa ia tidak dapat menemukan aktivitas awal, tetapi Path Dex berbeda, itu adalah "... / data / app / myapp-1" bukan "... / data / app / myapp" . Saya membuat ini membuat klik pada nama proyek elcipse "myapp" di jendela Package explorer. Kemudian klik kanan padanya, -> refactor-> rename ... Saya mengatur nama proyek menjadi myapp-1, dan kemudian, -> refactor-> rename ... dan kembali lagi ke "myapp". Lalu berhasil ... beberapa kinf bug di gerhana?


0

Saya punya masalah yang sama. Mencopot pemasangan aplikasi saya kemudian memasangnya kembali menyelesaikan masalah.


0

Saya mengalami ini ketika saya mengimpor proyek saya yang dibuat dari mesin yang berbeda. Hanya Invalidate cache dan restart

File> Invalidate Caches / Restart> Invalidate and restart


0

Saya mengubah applicationId menjadi sesuatu yang berbeda pada file (Module: app) build.gradle, jalankan aplikasi lagi di perangkat saya. Kemudian, saya membatalkan perubahan dan menjalankan aplikasi lagi dan semuanya berfungsi. Ini berfungsi di Android Studio 2.3.1 dan 4 perangkat berbeda yang saya miliki di sini, dari 5.0 hingga 7.0.


0

Saya menjawab pertanyaan ini. Saat digunakan gradle clean, gradle installDebugini berfungsi dengan baik!

   AndroidRuntime  D  Shutting down VM
E  FATAL EXCEPTION: main
E  Process: tv.panda.live.broadcast, PID: 4685
E  java.lang.RuntimeException: Unable to instantiate application tv.panda.live.broadcast.PandaApplication: java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" o
   n path: DexPathList[[zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDirectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at android.app.LoadedApk.makeApplication(LoadedApk.java:572)
E      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4883)
E      at android.app.ActivityThread.access$1500(ActivityThread.java:178)
E      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1573)
E      at android.os.Handler.dispatchMessage(Handler.java:111)
E      at android.os.Looper.loop(Looper.java:194)
E      at android.app.ActivityThread.main(ActivityThread.java:5691)
E      at java.lang.reflect.Method.invoke(Native Method)
E      at java.lang.reflect.Method.invoke(Method.java:372)
E      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
E  Caused by: java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" on path: DexPathList[[zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDi
   rectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E      at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E      at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
E      at android.app.Instrumentation.newApplication(Instrumentation.java:988)
E      at android.app.LoadedApk.makeApplication(LoadedApk.java:567)
E      ... 10 more
E      Suppressed: java.lang.ClassNotFoundException: tv.panda.live.broadcast.PandaApplication
E          at java.lang.Class.classForName(Native Method)
E          at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
E          at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
E          at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
E          ... 13 more
E      Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

0

Solusi Sederhana:

Cukup Mulai Ulang emulator atau perangkat seluler Anda. Dan masalahnya hilang! Alasan untuk masalah ini adalah karena aktivitas aplikasi sebelumnya dihentikan secara tidak benar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.