2012-04-14 1 views
92

Quando eseguo la mia applicazione, ogni volta che io sono sempre l'eccezione di seguito nella mia logcat:RuntimeException: impossibile creare un'istanza di applicazione

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 

Nota: Quando si disinstalla l'applicazione dall'emulatore ed eseguirlo, allora io don ottenere questa eccezione, ma quando rieseguo l'applicazione installata in emulatore, sto ricevendo questo. Per favore aiuto.

+1

se il pacchetto è android.app.Application, provare a modificare il nome del pacchetto, sembra un po 'sospetto, sembra il pacchetto di sistema. –

+0

Assicurati inoltre che l'app sia dichiarata nel Manifest. – dcow

+0

Espandere la linea causata da: java.lang.NullPointerException. Dovrebbe esserci un riferimento a una linea nell'applicazione più avanti sulla linea –

risposta

192

Questo è un messaggio di errore prolisso generato dal framework sottostante quando dalvik reinstallare il file .apk e tentare di riutilizzare o riciclare la precedente attività/vista precedente dallo stesso pacchetto (se non è stata ancora chiusa l'app installata precedente). Non ha nulla a che fare con la tua app, inoltre, è molto improbabile che la tua app venga bloccata o bloccata da questo verboso messaggio di errore sul dispositivo dell'utente finale.

Sembra che questo verboso errore dalvik verbose si sia verificato solo su sistema Android 4.0, l'ho testato io stesso su ambiente Android 3.2 e 2.3.3, in cui non è possibile replicare per visualizzare questo messaggio su nessuno dei due. Una domanda simile è stata discussa prima allo here e qualcuno ha compilato una segnalazione di bug in Android Issues Tracker.

Non penso che dovresti preoccuparti troppo di questo log degli errori verbose al momento, se guardi più log prima e dopo questo errore rosso in Logcat, puoi vedere la storia completa e scoprire che la precedente attività aperta/view (che sono contrassegnati come "dead state") vengono uccisi e il neo-reinstallato viene visualizzato alla fine.

+2

Hi, Non la mia app è né arrestato né congelato a causa di tale eccezione, il suo bel lavoro anche dopo che l'eccezione è stata lanciata. Ho appena visto l'eccezione nel logcat e non ero a conoscenza di esso, quindi ho pensato di chiedere la stessa cosa. Grazie per le informazioni, molto utile. – user182944

+0

Grazie a chi l'ha aiutato, ho avuto una bella descrizione su di esso – Triode

+2

Sto ricevendo questo nella console di sviluppo di un'applicazione di produzione. Sembra che avvenga principalmente con 4.2, ma ho visto anche altre versioni (4.1, 4.4). – Dustin

16

Mi rendo conto che è una domanda molto vecchia, ma può essere comunque utile. Ho scoperto che quando osservo questo errore nel mio sviluppo, è dovuto all'istanza in esecuzione della mia app che non si chiude in modo ordinato, ad esempio chiudendo i thread in background prima dell'uscita.

+0

Sì, colpire la casa pulsante sul mio telefono, quindi eseguendo di nuovo questo rimuove anche questo errore per me. – Aggressor

+0

Ha senso, ma come può un'app chiudersi ordinatamente quando è aperta davanti all'utente e poi Android lo uccide per aggiornarlo? – Sam

+0

Presumibilmente Android invoca onDestroy() metodi in quello scenario, no? Uno lo spera. – JulianSymes

1

Per me ha aiutato a pulire il progetto. In Eclipse:
- Progetto -> Clean
Si prega di controllare che il Progetto -> generare automaticamente sia selezionata
Se la Gen-cartella è vuota dopo che, c'è un errore nella res-cartella. Spesso gli errori nella cartella di ricerca non vengono mostrati dalla croce rossa! Buona fortuna e saluti

+0

Non mi è stato d'aiuto. Quando uso 'adb' per aggiornare da uno dei miei apk di produzione a un altro, questo problema si verifica, quindi non sembra specifico per l'IDE nel mio caso. – Sam

0

Nel mio caso, questo errore viene visualizzato dopo aver importato il progetto Android Maven in un nuovo spazio di lavoro e la cartella SRC non è stata aggiunta automaticamente al percorso di creazione.

Fare clic con il tasto destro del mouse sul progetto/Percorso di creazione/Configura percorso di compilazione/Origine - controllare se mancano fonti.

2

Ho ricevuto lo stesso errore quando ho provato a connettermi a Internet con JSOUP all'interno della mia classe di applicazione. Era difficile, perché l'applicazione girava su emulatore ma non sul dispositivo reale. Si è scoperto che ho appena usato la libreria JSOUP errata. Loading page in new thread risolto il mio problema.

Spero di aver aiutato qualcuno.

0

Ho avuto lo stesso problema. La pulizia del progetto ha funzionato per me.

Selezionare progetto di andare a Progetto -> Clean

+0

Non mi è stato d'aiuto. Quando uso 'adb' per eseguire l'aggiornamento da uno dei miei apk di produzione a un altro, questo problema si verifica, quindi non sembra specifico l'IDE nel mio caso. – Sam

0

Nel mio caso mi Logcat vederlo coudn't trovare l'attività iniziale, ma il percorso Dex era diverso, che era" .../data/app/myapp-1 "invece di" .../data/app/myapp ". Ho aggiunto questo fare clic sul nome del progetto elcipse "myapp" nella finestra Package explorer. Quindi fai clic destro su di esso, -> refactor-> rinomina ... Ho impostato il nome del progetto su myapp-1, quindi, -> refactor-> rinomina ... e di nuovo su "myapp". Poi ha funzionato ... qualche kinf di bug in eclissi?

2

Spero che questo aiuti qualcuno. Vai alle applicazioni in esecuzione sul vostro emulatore cliccando questo:

enter image description here

enter image description here

Chiudere l'applicazione che si sta tentando di installare ed eseguire di nuovo. NON è necessario disinstallare/reinstallare l'app o pulire il progetto.

0

Ho avuto lo stesso problema. Disinstallando la mia app e reinstallandola, il problema è stato risolto.

0

Ho sperimentato questo quando ho importato il mio progetto che è stato costruito da una macchina diversa. Basta Invalidate cache e riavviare

File> Disattiva Caches/Restart> invalidate e riavviare

0

ho cambiato l'ApplicationId a qualcosa di diverso su (Modulo: app) File build.gradle, eseguire nuovamente l'app sul mio dispositivo. Quindi, annullo la modifica ed eseguo di nuovo l'app e tutto funziona. Funziona su Android Studio 2.3.1 e 4 diversi dispositivi che ho qui, da 5.0 a 7.0.

0

Ho incontrato questa domanda. Quando si usa gradle clean, gradle installDebug funziona bene!

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