2012-04-18 12 views
6

Ho due telefoni Galaxy Nexus. I telefoni hanno la stessa versione del firmware 4.0.2, lo stesso numero di build, la stessa versione del kernel. Quando distribuisco la stessa esatta app su entrambi i telefoni usando Eclipse, vedo comportamenti diversi da ognuno di essi.Finestra di ricerca non riuscita - diversi comportamenti della stessa app su 2 galaxy nexus

Su un telefono, tutto funziona come previsto. Sull'altro telefono, l'attività principale si interrompe quando si passa a un'altra attività e si torna a quella principale, sia con il pulsante Indietro sia con altre attività che terminano e ritornano all'attività che lo ha creato. L'unico indizio che ho a questo problema è questo errore:

04-18 17:43:30.811: I/ActivityManager(207): Displayed org.mitre.Mobile/.Activities.QueryActivity: +430ms 
04-18 17:43:30.819: I/n*.w*.w*.ZoomButtonsCo*(4962): invoke: onVisibilityChanged listener: [email protected] 
04-18 17:43:30.843: E/InputQueue-JNI(4962): channel '41d66628 Panel:org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity (client)' ~ Publisher closed input channel or an error occurred. events=0x8 
04-18 17:43:30.843: W/WindowManager(207): Force-removing child win Window{41d66628 Panel:org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity paused=false} from container Window{420815c8 org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity paused=false} 
04-18 17:43:30.850: W/WindowManager(207): Failed looking up window 
04-18 17:43:30.850: W/WindowManager(207): java.lang.IllegalArgumentException: Requested window [email protected] does not exist 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7029) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7020) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2180) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.Session.remove(Session.java:149) 
04-18 17:43:30.850: W/WindowManager(207): at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:124) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.Session.onTransact(Session.java:111) 
04-18 17:43:30.850: W/WindowManager(207): at android.os.Binder.execTransact(Binder.java:338) 
04-18 17:43:30.850: W/WindowManager(207): at dalvik.system.NativeStart.run(Native Method) 

non ho davvero trovato qualcosa di utile su internet relativa a questo messaggio di errore. Ho un po 'di esperienza con Android, ma questo mi ha davvero bloccato. Inizialmente pensavo che si trattasse di un problema di launcher nova (il telefono con il problema ce l'ha), ma ho installato nova sull'altro telefono e ho comunque visto gli stessi comportamenti.

Il telefono con l'app che non funziona correttamente è il mio telefono personale, l'altro è un telefono di lavoro.

+0

Qual è l'attività principale che è fuori dall'ordinario? – CommonsWare

+0

Eseguo la stessa attività su entrambi i telefoni, niente di straordinario, disegnando un'applicazione di mappatura e interrogando i dati su un'area specifica. – ejo4041

+0

forse hai un'altra personalizzazione al telefono piuttosto che solo il launcher di nova, per testare questo dovresti ripristinare il telefono allo stato predefinito ovviamente. – Raykud

risposta

0

Abbiamo appena scoperto perché ogni attività muore. In Impostazioni> Opzioni sviluppatore, c'è una casella di controllo chiamata "Non tenere attività" "Distruggi ogni attività non appena l'utente la lascia". La scatola è stata controllata. L'ho appena deselezionato. Questo spiega tutto.

+1

Questo fa sorgere la domanda qual è il vantaggio di questa opzione di sviluppo. Lo spegnimento significa che alcuni casi in cui l'attività potrebbe essere uccisa (con poca memoria) rimane non testata e quindi non contabilizzata. –

+9

@AndrewS: è importante che l'app sia solida in condizioni di scarsa memoria. Avere abilitato in opzione consente di simulare una pulizia aggressiva da parte del sistema operativo. – Mark

+1

Sì, sono impostazioni molto utili. Si assicura che le tue attività non dipendano l'una dall'altra. Non assumere mai che l'attività al di sotto di un'altra sia viva. Non fare affidamento sugli oggetti di memoria per riprendere gli stati. Salva i dati sull'archiviazione permanente e sullo stato dell'interfaccia utente in bundle. – tdevaux

1

Il problema mi è successo dopo aver cambiato le varianti di costruzione. Qualcosa potrebbe essere incasinato con la tua build. Prova a riavviare Android Studio, pulisci e ricostruisci. Questo ha risolto il problema per me.

Buona fortuna!

Problemi correlati