2015-07-28 21 views
5

Ogni volta che si preme un punto di interruzione nel mio codice, vedo un odioso dialogo che mi informa che "Il processo di commutazione prospettiva ha riscontrato un problema", i cui dettagli dicono semplicemente "NullPointerException". Il log degli errori mostra questa analisi dello stack:Eclipse Luna fornisce NullPointerException quando il debug raggiunge un punto di interruzione

java.lang.NullPointerException 
    at org.eclipse.ui.internal.WorkbenchPage.showPart(WorkbenchPage.java:1298) 
    at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1269) 
    at org.eclipse.ui.internal.WorkbenchPage$13.run(WorkbenchPage.java:4144) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:4140) 
    at org.eclipse.debug.internal.ui.views.ViewContextService.showViewQuiet(ViewContextService.java:1168) 
    at org.eclipse.debug.internal.ui.launchConfigurations.PerspectiveManager$4.runInUIThread(PerspectiveManager.java:528) 
    at org.eclipse.debug.internal.ui.launchConfigurations.PerspectiveManager$MyUIJob$1.run(PerspectiveManager.java:229) 
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) 
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) 
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) 
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438) 

Ho provato disabilitando prospettiva di commutazione (che io non voglio in ogni caso) tramite Opzioni/Esegui/Debug/Perspectives impostando il punto di vista "Debug" su "None" , ma continua a essere reimpostato su "Debug" e non modifica questo comportamento.

Questo è estremamente fastidioso, rendendo il debug quasi inutilizzabile.

Ho provato ad aggiungere -clean a eclipse.ini, come suggerito qui Myeclipse is throwing some error when i debug server ... ma anche questo non ha avuto alcun impatto.

Idee?

risposta

12

Ho riscontrato lo stesso problema (che è probabilmente un bug) in Eclipse Mars. Ogni punto di interruzione raggiunto apre la finestra di dialogo di errore che hai descritto.

sono stato in grado di prevenire l'errore aggiornando le seguenti preferenze (che sono presenti anche in Luna):

  1. Vai Finestra>Preferenze
  2. Sulla sinistra, andare a Run/Debug>prospettive
  3. nei tipi applicazione/Lanciatori, selezionare il tip e dell'applicazione che stai eseguendo il debug.
  4. Sulla destra sotto modi/Perspectives, assicurarsi che Nessuno è selezionata per la Debug discesa.

Nota: non sono riuscito a trovare alcuna impostazione che disabilita completamente l'interruttore di prospettiva per tutti i tipi di applicazioni, quindi dovrete fare questo per ogni tipo che di debug.

+0

Stavo usando Luna, e ho provato questo, senza successo. Alla fine ho appena finito di spostare il dialogo (fortunatamente non modale) verso l'angolo dello schermo e di ignorarlo. – Marc

4

La soluzione sopra Luna non mi ha aiutato su Eclipse Mars. Il bug come documentato qui: https://bugs.eclipse.org/bugs/show_bug.cgi?id=477477

Dettagli che reimpostano la prospettiva Java EE (Finestra -> Prospettiva -> Reimposta prospettiva ...) Si fermerà il verificarsi di NullPointerException.

Avevo una prospettiva Java EE fortemente personalizzata; dopo aver effettuato il reset, NullPointerException è andato via.

0

Seguire questo passaggio In Finestra> Preferenze> Android> Controllo errori filaccia; Deselezionare "Quando si salvano i file, verificare la presenza di errori".