RuntimeException: Không thể khởi tạo ứng dụng


97

Khi tôi chạy ứng dụng của mình, mọi lúc tôi đều nhận được ngoại lệ dưới đây trong logcat của mình:

 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

Lưu ý: Khi tôi gỡ cài đặt ứng dụng khỏi trình giả lập và chạy nó, tôi không gặp trường hợp ngoại lệ này nhưng khi tôi chạy lại ứng dụng đã cài đặt trong trình giả lập, tôi nhận được điều này. Xin vui lòng giúp đỡ.


1
nếu gói của bạn là android.app .Ứng dụng, hãy thử thay đổi tên gói, hơi đáng ngờ, giống như gói của Hệ thống.
Nó không trống

Đồng thời đảm bảo rằng ứng dụng của bạn được khai báo trong Tệp kê khai.
dcow

Mở rộng dòng Nguyên nhân bởi: java.lang.NullPointerException. Nên có một tham chiếu đến một dòng trong ứng dụng của bạn hơn nữa xuống dòng
Zaid Daghestani

Không, tôi không có bất kỳ gói nào như bạn đã đề cập trong đơn đăng ký của tôi. Ứng dụng này được khai báo trong Manifest như: <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

Ứng dụng của bạn đang chạy trên phiên bản Android nào, 4.0?
yorkw

Câu trả lời:


194

Đây là một thông báo lỗi dài dòng do khung cơ bản đưa ra khi dalvik cài đặt lại tệp .apk và cố gắng sử dụng lại hoặc tái chế hoạt động / chế độ xem đã mở trước đó từ cùng một gói (nếu bạn chưa đóng ứng dụng đã cài đặt trước đó). Nó không liên quan gì đến ứng dụng của bạn, hơn nữa, rất khó xảy ra trường hợp ứng dụng của bạn bị đóng băng hoặc gặp sự cố do thông báo lỗi dài dòng này trên thiết bị của người dùng cuối.

Có vẻ như nhật ký lỗi chi tiết dalvik này chỉ xảy ra với hệ thống Android 4.0, tôi đã tự kiểm tra nó trên môi trường chạy Android 3.2 và 2.3.3, nơi bạn không thể sao chép để hiển thị thông báo này trên cả hai hệ thống. Một câu hỏi tương tự đã được thảo luận trước đây tại đây và ai đó đã điền vào báo cáo lỗi trong Trình theo dõi vấn đề của Android .

Tôi không nghĩ bạn nên quan tâm quá nhiều đến nhật ký lỗi dài dòng này vào lúc này, nếu bạn xem thêm nhật ký trước và sau lỗi màu đỏ này trong Logcat, bạn có thể xem toàn bộ câu chuyện và nhận thấy rằng hoạt động / chế độ xem đã mở trước đó (mà được đánh dấu là trạng thái đã chết) bị giết và cái mới được cài đặt lại cuối cùng sẽ xuất hiện.


2
Xin chào, Không có ứng dụng của tôi không bị treo hay bị treo vì ngoại lệ đó, Ứng dụng của tôi hoạt động tốt ngay cả sau khi ngoại lệ bị ném. Tôi chỉ thấy ngoại lệ trong logcat và không biết về nó, do đó tôi nghĩ đến việc hỏi tương tự. Cảm ơn vì thông tin, một thông tin rất hữu ích.
user182944

3
Tôi nhận được điều này trong bảng điều khiển dành cho nhà phát triển của một ứng dụng sản xuất. Nó dường như chủ yếu xảy ra với 4.2, nhưng tôi cũng đã thấy phiên bản khác (4.1, 4.4).
Dustin

3
@Dustin, bạn đã giải quyết được vấn đề này chưa? Vì trường hợp ngoại lệ này báo cáo nhiều nhất là 34 / tuần! và rất nhiều lời phàn nàn trong tin nhắn của người dùng!
thecr0w

1
Tôi vẫn đang tải nó cục bộ trong Android 5.1.1.
Sam

1
Nó xảy ra ngay cả trên 5.1.1. Điều gì đang xảy ra?
nhà phát triển android

16

Tôi nhận ra đó là một câu hỏi rất cũ, nhưng dù sao điều này cũng có thể hữu ích. Tôi nhận thấy rằng khi tôi quan sát lỗi này trong quá trình phát triển của chính mình, đó là do phiên bản đang chạy trước đây của ứng dụng của tôi không đóng lại gọn gàng, ví dụ như bằng cách tắt các luồng nền trước khi thoát.


Có, nhấn nút home trên điện thoại của tôi, sau đó chạy lại thao tác này cũng sẽ loại bỏ lỗi này cho tôi.
Aggressor

Có lý, nhưng làm thế nào một ứng dụng có thể đóng lại gọn gàng khi nó mở trước mặt người dùng và sau đó Android giết nó để nâng cấp nó?
Sam

Có lẽ Android gọi các phương thức onDestroy () trong trường hợp đó, phải không? Một người sẽ hy vọng như vậy.
JulianSymes

2

Tôi đã gặp phải lỗi tương tự khi cố gắng kết nối Internet bằng JSOUP bên trong lớp ứng dụng của mình. Thật khó, vì ứng dụng chạy trên trình giả lập nhưng không chạy trên thiết bị thực tế. Hóa ra, tôi chỉ sử dụng thư viện JSOUP sai. Đang tải trang trong chuỗi mới đã giải quyết được vấn đề của tôi.

Hy vọng tôi đã giúp một ai đó.


2

Hy vọng điều này sẽ giúp ai đó. Chuyển đến các ứng dụng đang chạy trên trình giả lập của bạn bằng cách nhấp vào đây:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Đóng ứng dụng bạn đang cố gắng cài đặt rồi chạy lại. KHÔNG cần gỡ cài đặt / cài đặt lại ứng dụng hoặc dự án sạch.


1

Đối với tôi, nó đã giúp làm sạch Dự án. Trong Eclipse:
- Dự án -> Sạch sẽ
Vui lòng kiểm soát Dự án đó -> Xây dựng Tự động được KIỂM TRA
Nếu gen-Thư mục trống sau đó, có một lỗi trong thư mục res. Thông thường, các lỗi trong thư mục res không được hiển thị bằng dấu thập đỏ! Chúc may mắn và lời chào


Không giúp được gì cho tôi. Khi tôi sử dụng adbđể nâng cấp từ một trong những apk sản xuất của mình lên một apk sản xuất khác, sự cố này sẽ xảy ra, vì vậy nó có vẻ không cụ thể đối với IDE trong trường hợp của tôi.
Sam

0

Trong trường hợp của tôi, lỗi này xuất hiện sau khi tôi đã nhập dự án Android Maven vào không gian làm việc mới và thư mục SRC không được tự động thêm vào đường dẫn xây dựng.

Nhấp chuột phải vào dự án / Đường dẫn xây dựng / Định cấu hình đường dẫn xây dựng / Nguồn - kiểm tra xem có thiếu nguồn hay không.


0

Tôi có cùng một vấn đề. Làm sạch dự án đã làm việc cho tôi.

Chọn dự án, đi tới Dự án -> Làm sạch


Không giúp được gì cho tôi. Khi tôi sử dụng adbđể nâng cấp từ một trong những apk sản xuất của mình lên một apk sản xuất khác, sự cố này sẽ xảy ra, vì vậy nó có vẻ không cụ thể đối với IDE trong trường hợp của tôi.
Sam

0

Trong trường hợp của tôi, logcat cho tôi thấy nó không tìm thấy hoạt động ban đầu, nhưng Đường dẫn Dex thì khác, nó là "... / data / app / myapp-1" thay vì "... / data / app / myapp" . Tôi đã thực hiện nhấp chuột vào tên dự án elcipse "myapp" trong cửa sổ Trình khám phá gói. Sau đó nhấp chuột phải vào nó, -> refactor-> đổi tên ... Tôi đặt tên dự án thành myapp-1, và sau đó, -> refactor-> đổi tên ... và quay lại "myapp". Sau đó, nó hoạt động ... một số lỗi trong nhật thực?


0

Tôi có cùng một vấn đề. Gỡ cài đặt ứng dụng của tôi rồi cài đặt lại nó đã giải quyết được sự cố.


0

Tôi đã trải nghiệm điều này khi nhập dự án của mình được xây dựng từ một máy khác. Chỉ cần vô hiệu hóa bộ nhớ đệm và khởi động lại

Tệp> Không hợp lệ bộ nhớ cache / Khởi động lại> Không hợp lệ và khởi động lại


0

Tôi đã thay đổi applicationId thành một cái gì đó khác trên tệp build.gradle (Module: app), chạy lại ứng dụng trên thiết bị của tôi. Sau đó, tôi hoàn tác thay đổi và chạy lại ứng dụng và mọi thứ hoạt động. Nó hoạt động trên Android Studio 2.3.1 và 4 thiết bị khác nhau mà tôi có ở đây, từ 5.0 đến 7.0.


0

Tôi đáp ứng câu hỏi này. Khi sử dụng gradle clean, gradle installDebugnó hoạt động tốt!

   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

Giải pháp đơn giản:

Chỉ cần Khởi động lại trình giả lập hoặc thiết bị di động của bạn. Và vấn đề đã biến mất! Lý do cho sự cố này là do một hoạt động ứng dụng trước đó đã bị tạm dừng sai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.