2015-06-30 15 views
10

Ho notato recentemente che la mia app non si arresta in modo anomalo quando si verifica un'eccezione non rilevata, ma non risponde. Uso Google Analytics per ottenere informazioni sugli arresti anomali, ho il sospetto che questa possa essere la causa del problema.L'app Android non si arresta in modo anomalo, ma non risponde alle eccezioni non rilevate

Quando lancio uno NullPointerException in onCreate() (immediatamente dopo super.onCreate()), l'applicazione mostra uno schermo bianco, ma non si arresta in modo anomalo.

Logcat dice:

06-30 14:00:59.386 26259-26259/? I/GAv4﹕ Google Analytics 7.5.71 is starting up. To enable debug logging on a device run: 
    adb shell setprop log.tag.GAv4 DEBUG 
    adb logcat -s GAv4 
06-30 14:00:59.398 26259-26259/? W/GAv4﹕ AnalyticsReceiver is not registered or is disabled. Register the receiver for reliable dispatching on non-Google Play devices. See http://goo.gl/8Rd3yj for instructions. 
06-30 14:00:59.409 26259-26259/? W/GAv4﹕ CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See http://goo.gl/8Rd3yj for instructions. 
06-30 14:00:59.414 26259-26295/? W/GAv4﹕ AnalyticsService not registered in the app manifest. Hits might not be delivered reliably. See http://goo.gl/8Rd3yj for instructions. 
06-30 14:00:59.467 26259-26259/? D/AndroidRuntime﹕ Shutting down VM 

mi piacerebbe vedere le eccezioni non gestite fanno, perché è davvero difficile da risolvere loro se non vedo lo StackTrace e la ragione del problema.

Cosa posso fare per riprendere il comportamento precedente?

MODIFICA: Dopo aver rimosso la segnalazione degli errori di Analytics (non chiamando tracker.enableExceptionReporting(true);), si verificano nuovamente gli arresti anomali. Uso Analytics da Play Services 7.5.0.

+1

in realtà hai solo avvisi ... che non implica necessariamente che la tua app lanci eccezioni .... quali errori stai cercando? –

+0

Ho lanciato una NullPointerException nell''azione principale 'onCreate() ', e voglio ottenere la traccia dello stack di esso. Il mio problema è che non ottengo alcun errore in logcat. – hunyadym

+1

Argh. Mi sento un po 'sollevato dal fatto che non sono l'unico con quel messaggio 'AndroidRuntime: Shut down VM' e non vedo nessun altro log. –

risposta

-1

Gli Exceptions sono visualizzati in Console per impostazione predefinita.

Se non si desidera controllare la console (credo sia più utile per questo scopo perché Logcat a volte è un gran casino), poi basta mostrare le Exception s nella Log quando catturato.

try { 

} catch (Exception e) { 
    Log.e("YOUR_APP_TAG", "Exception occured: ", e); 
} 
+0

Dove posso accedere a questa console? (Sto utilizzando Android Studio.) Inoltre, nel Play Store, non ricevo segnalazioni di arresti anomali, solo rapporti ANR, che non contengono lo stacktrace. Inoltre non voglio avvolgere tutto il mio codice con i try-catch. – hunyadym

+0

AFAIK non hai altra opzione che reindirizzare manualmente le eccezioni ... ** Puoi comunque dare un'occhiata alla console eh !!! ** Ma non devi usare milioni di 'try-catches' se controlli tutti gli "Eccezioni" che possono verificarsi in un catcher/gestore generale di "Exception" ... –

1

Google Analytics è il colpevole. Prova a disabilitarlo (o disabilita la segnalazione automatica delle eccezioni non rilevate) mentre lo sviluppi e lo abiliti quando firmi la tua app con la chiave di rilascio.

+0

Per me l'app non ha mai avuto un crash né firmato con debug né con la chiave di rilascio. (Come ho notato nella domanda, ho finito con la disattivazione della segnalazione delle eccezioni di Analytics.) – hunyadym

Problemi correlati