Autore Topic: Crash alla rotazione dello schermo  (Letto 1120 volte)

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Crash alla rotazione dello schermo
« il: 28 Febbraio 2012, 16:31:17 CET »
0
Salve, nella mia applicazione ho riscontrato un grosso problema al primo test su dispositivo fisico, come da titolo, alla rotazione dello schermo, l'applicazione crasha...
purtroppo non posso pubblicare il logcat poichè non posso ricreare l'errore sul simulatore (c'è un modo per simulare l'accelerometro? )

idee??

nella mia applicazione ho 50 classi, e 22 file xml,
nel file xml della homepage sono sicuro di aver impostato solo la visualizzazione portrait, ma pensavo che mettendola così, anche rotando lo schermo, non ruotava la vista (mio obbiettivo)
idee?
grazie in anticipo!!!  :-o :-o

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Crash alla rotazione dello schermo
« Risposta #1 il: 28 Febbraio 2012, 16:47:00 CET »
+1
Per bloccare la visualizzaione solo in portrati devi dichiararlo nel manifest.

Codice (XML): [Seleziona]
<activity android:name=".MyActivity"
         android:label="My Activity"
         android:screenOrientation="portrait">

Per girare l'emulatore CTRL+F11 ( vedi Android Emulator | Android Developers ).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Crash alla rotazione dello schermo
« Risposta #2 il: 28 Febbraio 2012, 16:47:49 CET »
0
Ciao per ruotare l'emulatore, prova tasto Ctrl + F12. Guarda il LogCat per vedere se compare l'errore e in caso affermativo invialo.
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Crash alla rotazione dello schermo
« Risposta #3 il: 28 Febbraio 2012, 17:20:10 CET »
0
Potresti anche fare il debug sul dispositivo fisico, se ne hai uno a disposizione  ;-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Crash alla rotazione dello schermo
« Risposta #4 il: 28 Febbraio 2012, 17:31:16 CET »
0
1 altro paio d domande
quelle righe devo inserirle nel manifest generale no? non nei singoli layer
il campo label: nel caso che l'activity evoca più di un interfaccia?
devo inserirlo per ogni activity o solo per la principale? perchè comunque mi da errore se scrivo

<activity android:name=".KoreaApp1"
         android:label="home" <!-- è il nome del layer richiamato da questa activity -->
         android:screenOrientation="portrait">


comunque ecco il log cat


02-28 16:22:02.068: E/AndroidRuntime(1192): FATAL EXCEPTION: main
02-28 16:22:02.068: E/AndroidRuntime(1192): java.lang.RuntimeException: Unable to start activity ComponentInfo{unikore.it/unikore.it.Koreapp1Activity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030007
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3347)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.ActivityThread.access$700(ActivityThread.java:122)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1150)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.os.Looper.loop(Looper.java:137)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.ActivityThread.main(ActivityThread.java:4340)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at java.lang.reflect.Method.invokeNative(Native Method)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at java.lang.reflect.Method.invoke(Method.java:511)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at dalvik.system.NativeStart.main(Native Method)
02-28 16:22:02.068: E/AndroidRuntime(1192): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030007
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.content.res.Resources.getValue(Resources.java:1019)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2107)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.content.res.Resources.getLayout(Resources.java:858)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.Activity.setContentView(Activity.java:1835)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at unikore.it.Koreapp1Activity.onCreate(Koreapp1Activity.java:22)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.Activity.performCreate(Activity.java:4465)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-28 16:22:02.068: E/AndroidRuntime(1192):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
02-28 16:22:02.068: E/AndroidRuntime(1192):    ... 12 more

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Crash alla rotazione dello schermo
« Risposta #5 il: 28 Febbraio 2012, 17:40:38 CET »
0
Quando ruoti il tablet, la activity si ricrea ripartendo da onCreate: il logcat dice che non trova una risorsa.
Sarebbe meglio tu postassi anche il sorgente  ;-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Crash alla rotazione dello schermo
« Risposta #6 il: 28 Febbraio 2012, 17:53:48 CET »
0
il problema di postar il sorgente è che sono più d 50 file .class
molti dei quali con più di 1000 righe...
non penso l'errore sia relativo a quello...
uhm... quella stringa nel manifest dovrei metterla per ogni activity no?

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Crash alla rotazione dello schermo
« Risposta #7 il: 28 Febbraio 2012, 17:59:48 CET »
0
il problema di postar il sorgente è che sono più d 50 file .class
molti dei quali con più di 1000 righe...
non penso l'errore sia relativo a quello...
uhm... quella stringa nel manifest dovrei metterla per ogni activity no?

Si, in tutte le activity  :-)

Comunque l'activity che salta dovrebbe essere Koreapp1Activity, come scritto sul logcat.
Altro dubbio: hai per caso dei layout differenti per landscape e portrait?
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Crash alla rotazione dello schermo
« Risposta #8 il: 28 Febbraio 2012, 18:14:14 CET »
+1
Altro dubbio: hai per caso dei layout differenti per landscape e portrait?

Credo di si. E se dovessi tirare a indovinare (non del tutto), il file di layout è solo in layout-port.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Crash alla rotazione dello schermo
« Risposta #9 il: 28 Febbraio 2012, 18:18:03 CET »
0
si, i layout sono tutti in layout_port
quindi se li sposto in layout si autogenera quello in landscape?
io li ho fatti solo per il portrait perchè l'idea originale era di far funzionare l'app solo in quel "verso"
comunque l'errore lo da in koreapp1 perchè er alactivity aperta quando ho ruotato, se cambio activity lo da in quella

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Crash alla rotazione dello schermo
« Risposta #10 il: 28 Febbraio 2012, 18:23:37 CET »
+1
si, i layout sono tutti in layout_port
quindi se li sposto in layout si autogenera quello in landscape?
io li ho fatti solo per il portrait perchè l'idea originale era di far funzionare l'app solo in quel "verso"
comunque l'errore lo da in koreapp1 perchè er alactivity aperta quando ho ruotato, se cambio activity lo da in quella

Se li sposti tutti in layout, vengono utilizzati sia in landscape che portrait, altrimenti, se vuoi creare due layout separati, crei due cartelle: layout-land, e layout-port

con questo dovresti risolvere!  ;-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Crash alla rotazione dello schermo
« Risposta #11 il: 28 Febbraio 2012, 18:37:17 CET »
0
io da ignorante pensavo che port stesse per portable o qualcosa del genere, nn avevo pensato portrait... comunque spostati tutti i layout, ora provo ^^ grazie mille (vi faccio saper se funziona)

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Crash alla rotazione dello schermo
« Risposta #12 il: 28 Febbraio 2012, 18:55:22 CET »
0
topic risolto, grz mille ^^