RuntimeException : 응용 프로그램을 인스턴스화 할 수 없습니다.


97

내 응용 프로그램을 실행할 때마다 logcat에서 아래 예외가 발생합니다.

 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

참고 : 에뮬레이터에서 앱을 제거하고 실행하면이 예외가 발생하지 않지만 에뮬레이터에서 설치된 애플리케이션을 다시 실행하면이 문제가 발생합니다. 도와주세요.


1
패키지가 android.app.Application 인 경우 패키지 이름을 변경해보십시오. 좀 의심스럽고 시스템의 패키지처럼 보입니다.
그것은 비어 있지 않습니다

또한 앱이 매니페스트에 선언되어 있는지 확인하십시오.
dcow

원인 : java.lang.NullPointerException 행을 펼치십시오. 더 선 아래로 응용 프로그램에서 선에 대한 참조가 있어야합니다
자이드 Daghestani

아니요, 신청서에 언급 한 것과 같은 패키지가 없습니다. : 앱은 매니페스트로 선언 <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

앱이 4.0에서 실행되는 Android 버전은 무엇입니까?
yorkw apr

답변:


194

이것은 dalvik이 .apk 파일을 다시 설치하고 동일한 패키지에서 이전에 열린 활동 /보기를 재사용하거나 재활용하려고 할 때 기본 프레임 워크에서 발생하는 자세한 오류 메시지입니다 (이전에 설치된 앱을 아직 닫지 않은 경우). 또한 앱과 관련이 없으며 최종 사용자 장치의이 장황한 오류 메시지로 인해 앱이 정지되거나 충돌 할 가능성이 거의 없습니다.

이 dalvik verbose 오류 로그는 Android 4.0 시스템에서만 발생한 것으로 보이며 Android 3.2 및 2.3.3 실행 환경에서 직접 테스트했습니다.이 메시지를 둘 다 표시하기 위해 복제 할 수 없습니다. 유사한 질문이 여기 에서 이전에 논의 되었으며 누군가 Android Issues Tracker 에서 버그 보고서를 작성했습니다 .

지금은이 장황한 오류 로그에 대해 너무 걱정할 필요가 없다고 생각합니다. Logcat에서이 빨간색 오류 전후에 더 많은 로그를 살펴보면 전체 스토리를 볼 수 있고 이전에 열린 활동 /보기 (이 사망 상태로 표시됨) 사망하고 새로 다시 설치된 항목이 궁극적으로 팝업됩니다.


2
안녕하세요, 내 앱이 해당 예외로 인해 충돌하거나 동결되지 않았습니다. 예외가 발생한 후에도 정상적으로 작동합니다. 나는 방금 logcat에서 예외를 보았고 그것을 인식하지 못했기 때문에 똑같은 것을 요구할 것이라고 생각했습니다. 매우 유용한 정보를 주셔서 감사합니다.
user182944

3
프로덕션 애플리케이션의 개발자 콘솔에서 이것을 얻었습니다. 주로 4.2에서 발생하는 것 같지만 다른 버전 (4.1, 4.4)도 보았습니다.
Dustin

3
@Dustin,이 문제를 해결 했습니까? 이 예외는 주당 최대 34 개로보고됩니다! 그리고 사용자 메시지에 많은 불평이 있습니다!
thecr0w

1
Android 5.1.1에서 여전히 로컬로 가져옵니다.
Sam

1
5.1.1에서도 발생합니다. 무슨 일이야?
안드로이드 개발자

16

매우 오래된 질문이라는 것을 알고 있지만 어쨌든 유용 할 수 있습니다. 내 개발에서이 오류를 관찰 할 때, 예를 들어 종료 전에 백그라운드 스레드를 종료하는 등 이전에 실행중인 내 앱 인스턴스가 깔끔하게 종료되지 않았기 때문이라는 것을 발견했습니다.


예, 내 전화의 홈 버튼을 누른 다음 이것을 다시 실행하면이 오류도 제거됩니다.
Aggressor 2014

말이 되겠지만, 앱이 사용자 앞에서 열려있을 때 어떻게 깔끔하게 닫히고 Android가 업그레이드를 위해 앱을 죽일 수 있을까요?
Sam

아마도 Android는 해당 시나리오에서 onDestroy () 메서드를 호출합니다. 그렇게 희망 할 것입니다.
JulianSymes

2

내 응용 프로그램 클래스 내에서 JSOUP를 사용하여 인터넷에 연결하려고 할 때 동일한 오류가 발생했습니다. 응용 프로그램이 실제 장치가 아닌 에뮬레이터에서 실행되기 때문에 까다 롭습니다. 방금 JSOUP 라이브러리를 잘못 사용한 것으로 나타났습니다. 새 스레드에서 페이지를로드 하면 문제가 해결되었습니다.

누군가를 도왔기를 바랍니다.


2

이것이 누군가를 돕기를 바랍니다. 다음을 클릭하여 에뮬레이터에서 실행중인 앱으로 이동합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

설치하려는 앱을 닫은 다음 다시 실행하십시오. 앱을 제거 / 다시 설치하거나 프로젝트를 정리할 필요가 없습니다.


1

저에게는 프로젝트를 청소하는 데 도움이되었습니다. Eclipse에서 : -Project-
> Clean
Please control that Project-> Build Automatically is CHECKED
그 후 gen-Folder가 비어 있으면 res-folder에 오류가있는 것입니다. 종종 res 폴더의 실수는 적십자로 표시되지 않습니다! 행운과 인사


나를 도와주지 않았다. adb프로덕션 APK 중 하나에서 다른 APK로 업그레이드 하는 데 사용하면 이 문제가 발생하므로 제 경우에는 IDE에만 국한된 것처럼 보이지 않습니다.
Sam

0

제 경우에는 Android Maven 프로젝트를 새 작업 공간으로 가져온 후이 오류가 나타나고 SRC 폴더가 빌드 경로에 자동으로 추가되지 않았습니다.

프로젝트 / 빌드 경로 / 빌드 경로 / 소스 구성-누락 된 소스가 있는지 확인하십시오.


0

나는 같은 문제가 있습니다. 프로젝트를 청소하는 것이 저에게 효과적이었습니다.

프로젝트 선택 프로젝트-> 정리로 이동


나를 도와주지 않았다. adb프로덕션 APK 중 하나에서 다른 APK로 업그레이드 하는 데 사용하면 이 문제가 발생하므로 제 경우에는 IDE에만 국한된 것처럼 보이지 않습니다.
Sam

0

제 경우에는 logcat이 초기 활동을 찾을 수 없다는 것을 보여 주었지만 Dex Path는 달랐고 "... / data / app / myapp"대신 "... / data / app / myapp-1"이었습니다. . 패키지 탐색기 창에서 elcipse 프로젝트 이름 "myapp"을 클릭하여이 작업을 수행했습니다. 그런 다음 마우스 오른쪽 버튼을 클릭하고-> 리팩터링-> 이름 바꾸기 ... 프로젝트 이름을 myapp-1로 설정 한 다음-> 리팩터링-> 이름 바꾸기 ...를 다시 "myapp"으로 설정합니다. 그런 다음 작동했습니다 ... 일식에 버그가 있습니까?


0

나는 같은 문제가 있습니다. 내 앱을 제거한 다음 다시 설치하면 문제가 해결되었습니다.


0

다른 기계에서 만든 프로젝트를 가져올 때 이런 경험이있었습니다. 캐시를 무효화하고 다시 시작하십시오.

파일> 캐시 무효화 / 다시 시작> 무효화 및 다시 시작


0

(Module : app) build.gradle 파일에서 applicationId를 다른 것으로 변경하고 내 기기에서 앱을 다시 실행합니다. 그런 다음 변경 사항을 취소하고 앱을 다시 실행하면 모든 것이 작동합니다. Android Studio 2.3.1 및 여기에있는 4 가지 기기 (5.0 ~ 7.0)에서 작동합니다.


0

나는이 질문을 만난다. 때 사용 gradle clean, gradle installDebug괜찮아요 작업!

   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

간단한 솔루션 :

그냥 다시 시작 에뮬레이터 또는 모바일 장치. 그리고 문제가 사라졌습니다! 이 문제의 원인은 이전 앱 활동이 잘못 중지 되었기 때문입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.