Crash Android all'avvio

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
simonmatts
Newbie
Messaggi: 14
Iscritto il: 01/11/2013, 12:09
Uso: GM:Studio 2
Contatta:

Crash Android all'avvio

Messaggio da simonmatts »

Ciao, avrei bisogno di qualche chiarimento per sviluppare su mobile, per adesso Android.

Ho sviluppato un'app in GMS, su windows tutto ok, ma quando vado su android il gioco mi crasha SEMPRE dopo lo splash screen.

Ho testato su due dispositivi reali (un tablet e un cell) e fa sempre uguale, sia che avvii dal "play" in GMS sia che faccia l'app e la installi sul dispositivo.

La console di GMS non sembra darmi errori, mentre l'android monitor mi restituisce un "Fatal signal 11 (SIGSEV) at 0x00000000 (code=1)" che io non mi so spiegare...

Lo stesso problema viene anche se avvio una demo di GMS quindi presumo che il problema sia a monte e non specificamente nell'app. Forse ho settato qualche impostazione sbagliata nelle preferenze android... ma ho provato ogni variante!

Mi chiedevo: esistono delle regole consolidate e delle buone pratiche per android in GMS? Qualcuno in passato ha avuto lo stesso problema?

Grazie ;)

Will
Newbie
Messaggi: 27
Iscritto il: 14/10/2013, 18:01
Specialità: Programmazione
Uso: GM:Studio 1.4 Master
Contatta:

Re: Crash Android all'avvio

Messaggio da Will »

Sembra un errore di memoria a quanto dicono qui:

http://stackoverflow.com/questions/1721 ... read-32140

BotaniciTraffici
Membro attivo
Messaggi: 348
Iscritto il: 31/01/2014, 12:38
Specialità: Programmazione
Uso: GM:Studio 1.4 Master
Contatta:

Re: Crash Android all'avvio

Messaggio da BotaniciTraffici »

Will ha scritto:Sembra un errore di memoria a quanto dicono qui:

http://stackoverflow.com/questions/1721 ... read-32140
Mi permetto di consigliarti di far partire il gioco in win col task manager aperto per verificare quanta memoria utilizza il tuo processo. Fai conto che il tuo pc ha un certo quantitativo di memoria mentre un dispositivo android ne ha un'altro.

Comunque per eccedere tutta la memoria le cose son 2: o hai creato un giocone con moltissimi (più di moltissimi) dati+risorse oppure hai qualche problema nella gestione di questi; problema che su windows potrebbe anche essere tralasciato (insomma, si fa per dire...) mentre su android no.

Avatar utente
simonmatts
Newbie
Messaggi: 14
Iscritto il: 01/11/2013, 12:09
Uso: GM:Studio 2
Contatta:

Re: Crash Android all'avvio

Messaggio da simonmatts »

Mmmh... beh potrebbe anche essere, ma uso immagini di pochi kb e texture 1024x1024... e non si spiegherebbe il crash anche della demo.
Con windows mi dà 60mb di memoria usata, quindi dovrebbe gestirla qualsiasi android recente.

Può darsi che stia sbagliando qualcosa sull'android sdk? Quali versioni di android è NECESSARIO avere nell'sdk per compilare con GMS? Mi sembra di averne messe in abbondanza ma non si sa mai...
E che versioni di Java jdk?

Avatar utente
aironenero
GMI Guru
Messaggi: 2612
Iscritto il: 02/05/2012, 14:56
Specialità: Unity 3D
Uso: GM:Studio 1.4 Pro
Località: Ispica
Contatta:

Re: Crash Android all'avvio

Messaggio da aironenero »

simonmatts ha scritto:Mmmh... beh potrebbe anche essere, ma uso immagini di pochi kb e texture 1024x1024... e non si spiegherebbe il crash anche della demo.
Con windows mi dà 60mb di memoria usata, quindi dovrebbe gestirla qualsiasi android recente.

Può darsi che stia sbagliando qualcosa sull'android sdk? Quali versioni di android è NECESSARIO avere nell'sdk per compilare con GMS? Mi sembra di averne messe in abbondanza ma non si sa mai...
E che versioni di Java jdk?
usa armv 7 e non armv 5 (il 7 gestisce più memoria)
Unity Developer
Immagine
Immagine

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Crash Android all'avvio

Messaggio da Homunculus »

A quello che vedo il problema in genere dipende dalla memoria video, come é stato giustamente fatto notare. Non per forza però si dovrebbe presentare anche su windows, molto probabilmente dipende dalla quantità di memoria video limitata dei device mobili.

Un paio di cose che puoi controllare:

- Se usi molte surface o risorse aggiunte al volo (sprite_add ecc...) prova a disabilitarle o diminuirle (temporaneamente) e fai qualche test
- Prova a diminuire la dimensione delle texture page per android a 512x512 e vedi se si risolve, se é così significa che hai troppe risorse, troppo grandi, o che fai troppi page swap.

Avatar utente
aironenero
GMI Guru
Messaggi: 2612
Iscritto il: 02/05/2012, 14:56
Specialità: Unity 3D
Uso: GM:Studio 1.4 Pro
Località: Ispica
Contatta:

Re: Crash Android all'avvio

Messaggio da aironenero »

Homunculus ha scritto:A quello che vedo il problema in genere dipende dalla memoria video, come é stato giustamente fatto notare. Non per forza però si dovrebbe presentare anche su windows, molto probabilmente dipende dalla quantità di memoria video limitata dei device mobili.

Un paio di cose che puoi controllare:

- Se usi molte surface o risorse aggiunte al volo (sprite_add ecc...) prova a disabilitarle o diminuirle (temporaneamente) e fai qualche test
- Prova a diminuire la dimensione delle texture page per android a 512x512 e vedi se si risolve, se é così significa che hai troppe risorse, troppo grandi, o che fai troppi page swap.
bisogna poi vedere che smatphone abbia!
Unity Developer
Immagine
Immagine

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Crash Android all'avvio

Messaggio da Homunculus »

aironenero ha scritto: bisogna poi vedere che smatphone abbia!
Non dovrebbe fare molta differenza francamente, non é che il gioco lo fai per la versione specifica di smartphone. Ovviamente se é particolarmente vecchio o con una versione vecchia di android possono esserci problemi ma questo é scontato...

Avatar utente
simonmatts
Newbie
Messaggi: 14
Iscritto il: 01/11/2013, 12:09
Uso: GM:Studio 2
Contatta:

Re: Crash Android all'avvio

Messaggio da simonmatts »

Allora ho fatto un project nuovo con una sola room e un solo sprite dentro e questo funziona sul tablet (che comunque ha 400 e rotti mb di ram libera).

Quindi il problema effettivamente sta nel gioco fatto da me... ma non mi pare di avere o creare risorse esose...

Come ha detto homunculus proverò a disabilitare selettivamente risorse e script.

Grazie a tutti, in seguito farò sapere se riesco nel (fastidioso) debug.

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Crash Android all'avvio

Messaggio da Homunculus »

Prova per prima cosa a diminuire la dimensione delle texture page, ci metti un nanosecondo e se funziona in quel modo sai subito dov'è il problema.

Avatar utente
simonmatts
Newbie
Messaggi: 14
Iscritto il: 01/11/2013, 12:09
Uso: GM:Studio 2
Contatta:

Re: Crash Android all'avvio

Messaggio da simonmatts »

Purtroppo non riesco a debuggare, ragazzi...
Ho esportato su iOS (per la prima volta) e mi fa lo stesso crash all'avvio, dandomi anche lì l'errore SIGSEGV.

Se posto il log del Mac c'è qualcuno che sa guardare dove si impalla?
Alle linee 21-27 potrebbe riferirsi ad un problema con un timer? (timeline?)

Codice: Seleziona tutto

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000
Triggered by Thread:  0

Thread 0 Crashed:
0   YoYo_Runner                   	0x0003fbd6 0x1c000 + 146390
1   YoYo_Runner                   	0x0007c5ca 0x1c000 + 394698
2   YoYo_Runner                   	0x0005a2fa 0x1c000 + 254714
3   YoYo_Runner                   	0x0003690e 0x1c000 + 108814
4   YoYo_Runner                   	0x00038c5c 0x1c000 + 117852
5   YoYo_Runner                   	0x000374da 0x1c000 + 111834
6   YoYo_Runner                   	0x0002dda4 0x1c000 + 73124
7   YoYo_Runner                   	0x0003bd60 0x1c000 + 130400
8   YoYo_Runner                   	0x0003c056 0x1c000 + 131158
9   YoYo_Runner                   	0x0003c090 0x1c000 + 131216
10  YoYo_Runner                   	0x0009c94a 0x1c000 + 526666
11  YoYo_Runner                   	0x0009cb4a 0x1c000 + 527178
12  YoYo_Runner                   	0x0009cfd2 0x1c000 + 528338
13  YoYo_Runner                   	0x000a1de6 0x1c000 + 548326
14  YoYo_Runner                   	0x000a22d6 0x1c000 + 549590
15  YoYo_Runner                   	0x000a3750 0x1c000 + 554832
16  YoYo_Runner                   	0x000bf530 0x1c000 + 668976
17  YoYo_Runner                   	0x000c0358 0x1c000 + 672600
18  YoYo_Runner                   	0x00026560 0x1c000 + 42336
19  YoYo_Runner                   	0x00025e2a 0x1c000 + 40490
20  YoYo_Runner                   	0x00024aa0 0x1c000 + 35488
21  Foundation                    	0x30d37d28 __NSFireTimer + 60
22  CoreFoundation                	0x3031e0dc __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 12
23  CoreFoundation                	0x3031dcf2 __CFRunLoopDoTimer + 778
24  CoreFoundation                	0x3031c08e __CFRunLoopRun + 1206
25  CoreFoundation                	0x30286c22 CFRunLoopRunSpecific + 518
26  CoreFoundation                	0x30286a06 CFRunLoopRunInMode + 102
27  GraphicsServices              	0x34fad27e GSEventRunModal + 134
28  UIKit                         	0x32b2a044 UIApplicationMain + 1132
29  SpringtomizeUbiquitous.dylib  	0x011d2b8e 0x11d2000 + 2958
30  YoYo_Runner                   	0x0002013a 0x1c000 + 16698
31  YoYo_Runner                   	0x000200f4 0x1c000 + 16628


Avatar utente
simonmatts
Newbie
Messaggi: 14
Iscritto il: 01/11/2013, 12:09
Uso: GM:Studio 2
Contatta:

Re: Crash Android all'avvio

Messaggio da simonmatts »

Ok, ho tentato di tutto e non ha funzionato niente... così ho deciso la scelta drastica e a saperlo prima avrei risparmiato un sacco di tempo.
Nell'impossibilità di eliminare la risorsa infame ho risolto creando un nuovo progetto, ho lentamente ri-importato tutte le risorse e ora funziona tutto ok.

Morale: non c'era nessuna risorsa sbagliata, troppo grande, troppo piccola, poca memoria o chissà quale errore di programmazione... probabilmente, anche pulendo la cache, alcune risorse vecchie rimangono nel progetto (e ne ho trovate molte... troppe) e questo alla lunga crea problemi nell'accesso alla memoria (SIGSEGV MAPERR è effettivamente un "errore di accesso in memoria"). Almeno io, terra terra, la spiego così.

L'importante è aver risolto, cominciavo a disperare... Grazie a tutti :rockrock:

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti