2012-06-29 15 views
5

Ricevo una java.lang.NullPointerException quando l'app si avvia e si spegne. L'errore dall'emulatore è "Sfortunatamente, l'appname è stato fermato". Sta funzionando bene, fino a quando ho scritto un sacco di nuovo codice e ho cambiato il manifest. Spero che non sia il manifest, ma la mia domanda è, come posso scoprire quale linea di codice è il problema? Il deposito di tracce non significa niente per me, e anche se è prolisso, avere ... altro 11 non mi permette di vedere il tutto.Come ottenere la riga di codice specifica che ha generato un errore

Non so davvero cosa significhi quell'errore. L'ho cercato, ma sembra che ci sia una lista di cose che potrebbe significare. Ho provato Progetto> Pulisci, ho provato ancora a fare scherzi con il manifest, ma ottengo comunque l'errore. Ho controllato/deselezionato le librerie esterne. Ho appena fatto ciò che le persone hanno suggerito di fare per gli altri ottenendo lo stesso errore. Quindi mi piacerebbe davvero sapere, quale linea lo ha spinto?

Ecco l'output se questo aiuta:

06-29 08:37:23.680: E/AndroidRuntime(1225): FATAL EXCEPTION: main 
06-29 08:37:23.680: E/AndroidRuntime(1225): java.lang.RuntimeException: Unable to instantiate activity  ComponentInfo{com.upliftly.android/com.upliftly.android.UpliftlyActivity}: java.lang.NullPointerException 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.app.ActivityThread.access$600(ActivityThread.java:122) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.os.Looper.loop(Looper.java:137) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.app.ActivityThread.main(ActivityThread.java:4340) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at dalvik.system.NativeStart.main(Native Method) 
06-29 08:37:23.680: E/AndroidRuntime(1225): Caused by: java.lang.NullPointerException 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:101) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at java.lang.Class.newInstanceImpl(Native Method) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at java.lang.Class.newInstance(Class.java:1319) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870) 
06-29 08:37:23.680: E/AndroidRuntime(1225):  ... 11 more 
+0

Puoi pubblicare il tuo manifest? –

risposta

8

Di solito quando si vede una traccia dello stack simile quello che hai postato, dovresti concentrarti sulle righe dopo l'ultimo

Caused by: 

linea. Dopodiché, rilevi la linea che ha il nome del tuo pacchetto ed è (nella maggior parte dei casi) quella linea che ha causato l'eccezione dal tuo codice. Nella traccia dello stack che hai postato, quella linea è

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19) 
+0

Grazie, stavo avendo problemi a interpretare ciò che Logcat stava cercando di dirmi. Ora lo so, e questo mi ha aiutato a isolare il bug ea risolvere il problema. –

+0

Felice di poter aiutare :) – Angelo

7

Cercare il nome del pacchetto della tua app (sto cercando di indovinare che è com.uplifty.android):

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19) 
0

nel logcat ti do il nome del pacchetto e il tuo nome di attività con il numero linea .Poi è necessario osservare che la linea particolare in quello quali sono le variabili disponibili allora è necessario verificare che le variabili e i relativi ID xml corrispondenti. quindi con l'aiuto di questo è possibile evitare questo errore . Credo che nel vostro logcat postato

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19) 

la linea di cui sopra sembra essere la linea la vostra attività in quanto è possibile controllo ed evitare l'errore.

1

Come due delle risposte ha detto: look per il tuo nome del pacchetto come in questo esempio:

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19) 

La parentesi si dice in quale file Java e quale linea l'errore si verifica. Quindi in questo caso UpliftlyActivity.java riga 19.

Anche se l'errore in Manifest o nei file xml non ti mostrerà un file o un numero di riga in cui l'errore è, quindi sono più difficili da trovare.

Problemi correlati