Questi arresti si verificano in modo intermittente mentre si esegue il backup nella mia attività principale, che consiste di due frammenti (uno è un frammento di supporto di Google Maps) . Se non fosse stato per il nostro sistema di tracciamento degli arresti anomali, non avrei idea che gli utenti stessero vivendo questo, in quanto non è riproducibile su nessuno dei miei dispositivi fisici o emulati. Si estende varie API tra il minimo di 15 e mio target di 22.java.lang.OutOfMemoryError: android.support.v4.app.BackStackState [] di lunghezza 1279544898 avrebbe un overflow
Nel sistema incidente, l'incidente si verifica in una delle due forme:
java.lang.OutOfMemoryError: android.support.v4.app.BackStackState[] of length 1279544898 would overflow
o
java.lang.OutOfMemoryError: Failed to allocate a 5118179604 byte allocation with 16777216 free bytes and 472MB until OOM near/at g.newArray:174
L' arresto anomalo si verifica nel metodo onViewCreated del frammento contenente la mia mappa:
mMapView.onCreate(savedInstanceState);
Il mio primo t è una perdita di memoria, ma ... sembra che si stia facendo un ciclo durante la creazione del backstack - come se l'indice degli storni abbia superato il lungo. Leak Canary non ha riscontrato perdite di memoria (tranne la nostra MainApplication, che a mio avviso conserva un riferimento statico al contesto). E se fosse una tipica perdita di memoria, sembra strano che questo crash si verifichi sempre sulla stessa linea e da nessun'altra parte. Esistono altre aree ad alta intensità di memoria di questa app (che è un'impresa, quindi non posso divulgare troppo), ma nessuna di queste attività ha generato errori OOM.
Devo anche notare che questa è un'app matura, con molti utenti e versioni. Il problema di OOM si verifica SOLO nella versione beta della nostra versione corrente (di nuovo, basata esclusivamente sui record del nostro sistema di tracciamento degli incidenti, dal momento che non siamo in grado di riprodurre da nessuna parte). Ho effettuato confronti approfonditi sul codice tra la nostra versione di produzione e la nostra versione beta, e la maggior parte delle modifiche sono relativamente standard/banali. (Non ho iniziato l'aggiunta di nuove immagini bitmap o nulla.)
Le specifiche:
- Play Services 8.4.0
- Gradle 2.1 API
- target API 22
- Min 15
- ProGuard abilitato
Chi lo vede? Posso vedere l'incidente sta accadendo, ma è terribilmente difficile da rintracciare quando non riesco a riprodurre ...
aggiungi codice onCreate completo – Zoe
È un codice aziendale, quindi non posso. Ho provato ad aggiungere tutte le cose rilevanti che potevo senza violare la politica. –
quindi non dovresti fare domande a riguardo – Zoe