2016-04-18 12 views
19

Im nuovo allo sviluppo di Android mia app viene continuamente ucciso quando si passa da 11 volte l'attività e poi si dice soloQual è il segnale fatale 6 in logcat Android

segnale Fatal 6 (SIGABRT), il codice -6 in tid 9485 (Thread-141585)

nel mio logcat.

Cosa significa?

+2

Questo si verifica se v'è un uso intensivo della CPU accadendo nella discussione dell'interfaccia utente. Puoi condividere il codice attività per verificare se c'è qualcosa del genere – Sreeraj

+0

Non ne sono del tutto sicuro, ma penso che dia quell'errore quando il tuo dispositivo Android pensa che l'interfaccia utente (sta per) si blocchi. Quindi molto probabilmente fai un po 'troppo sul thread dell'interfaccia utente, come giustamente sottolineato da _ @ Sreeraj_. Inoltre, questo si verifica solo durante il debug? In tal caso, provare [accendendo la finestra di dialogo ANR (App Not Responding)] (http://stackoverflow.com/a/24476963/1682559) in modo che Aspetta un po 'per l'avvio del debugger. Il problema principale è la memoria sul thread dell'interfaccia utente, ma ciò che provoca è solo una supposizione senza alcune ulteriori informazioni come alcuni dei tuoi frammenti di codice e simili. –

+0

Im usando una classe BluetoothLeService (Service) che leghiamo e svincolano su ogni attività quando cambio per 11 volte si blocca la mia app con l'errore Signal 6 anche girata ANR già su di essa solo crash la mia app –

risposta

12

Senza ulteriori dettagli (come vedere un po 'di codice).

1) Non bloccare il thread dell'interfaccia utente, ciò può causare un SIGABRT poiché il sistema operativo ucciderà un'applicazione non reattiva.

legare e sciogliere su ogni attività quando passo per come 11 volte si blocca la mia app

2) Assicurarsi che nel tuo OnDestroy all'interno Activity si pulisce dopo voi stessi. Ad esempio, rimuovere tutti i tuoi Listeners/Events e quindi chiamare il Base.OnDestory.

3) Un servizio esterno (cioè BluetoothLeService) chiamando di nuovo nella vostra app con gli ascoltatori che ormai nullo nullo/causerà si blocca e quindi una SIGABRT, vedere # 2

+0

Im cancellare tutto e pulire tutto ma si blocca in modo casuale tutto ha funzionato come previsto il dispositivo ble comunica con la mia app mi mostra anche i valori richiesti è molto strano cercando per 3 settimane a questo problema provato assetto di cose –

+0

Immagino che sia un cattivo riferimento, un oggetto che è essere GC su Mono e/o Davik/ART, un oggetto peer che è nullo, qualcosa che sta appeso all'app, fuori questione di memoria, ** ma senza vedere alcun codice sto solo supponendo ** ... Come parte nota: hai provato a usare 'GC.Collect() 'alla fine di OnDestroy e imposta l'evento OnLowMemory di Activity e aggiungi logging ovunque ;-) – SushiHangover

+0

OnLowMemory non viene sparato –

8

Secondo Wikipedia:

Il segnale SIGABRT viene inviato ad un processo per dirlo di interrompere, cioè per terminare. Il segnale viene solitamente avviata dal processo stesso quando chiama interruzione funzione della libreria standard C, ma può essere inviato al processo dall'esterno come qualsiasi altro segnale

E di solito indica un qualche tipo di errore nel codice o una delle librerie che chiami.

Consulta anche: When does a process get SIGABRT (signal 6)?

Problemi correlati