Autore Topic: Chi mi aiuta a capire l'errore?  (Letto 1079 volte)

Offline piterpaolo

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia V
  • Play Store ID:
    Piterpaolo
  • Sistema operativo:
    Windows 7
Chi mi aiuta a capire l'errore?
« il: 16 Dicembre 2014, 10:11:38 CET »
0
Nella mia app mi sono auto segnalato questo errore:

java.lang.RuntimeException: Unable to start activity ComponentInfo{it.ppp.followme/it.ppp.followme.FollowMe}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at it.ppp.followme.FollowMe.onCreate(FollowMe.java:173)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
... 11 more

Uscito fuori con un dispositivo con android 2.x, con le altre versioni sembra non esserci problemi.
Cosa posso guardare, non riesco proprio a capire.

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:Chi mi aiuta a capire l'errore?
« Risposta #1 il: 16 Dicembre 2014, 10:28:19 CET »
0
Citazione
Caused by: java.lang.NullPointerException
at it.ppp.followme.FollowMe.onCreate(FollowMe.java:173)

Alla riga 173 di FollowMe.java c'è qualcosa che è NULL e non dovrebbe.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline piterpaolo

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia V
  • Play Store ID:
    Piterpaolo
  • Sistema operativo:
    Windows 7
Re:Chi mi aiuta a capire l'errore?
« Risposta #2 il: 16 Dicembre 2014, 10:38:12 CET »
0
Avevo controllato la riga 173 ma ho un commento :-(

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:Chi mi aiuta a capire l'errore?
« Risposta #3 il: 16 Dicembre 2014, 11:06:10 CET »
0
Avevo controllato la riga 173 ma ho un commento :-(

Dubito fortemente che il tool possa sbagliare a indicarti la riga dell'errore: più probabilmente hai modificato il sorgente dopo o prima la lettura del LogCat, oppure stai guardando la riga sbagliata.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline piterpaolo

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia V
  • Play Store ID:
    Piterpaolo
  • Sistema operativo:
    Windows 7
Re:Chi mi aiuta a capire l'errore?
« Risposta #4 il: 16 Dicembre 2014, 11:24:39 CET »
0
Hai ragione stavo guardando nel codice a cui ho apportato delle modifiche per fare gli aggiornamenti.
Nel codice dell'errore ho questo:
 if(isOnline()){
            SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
            // Getting GoogleMap object from the fragment
             map = mapFragment.getMap();
             map.setMyLocationEnabled(true);  //RIGA 173
           //Personalizzo la visualizzazione della mappa
             map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
          map.getUiSettings().setMyLocationButtonEnabled(true);
          map.getUiSettings().setRotateGesturesEnabled(true);
          map.getUiSettings().setCompassEnabled(true); //visualizzo la bussola

Può essere che l'app non trovando la posizione da errore?
Però su versioni superiori di android anche se la posizione non è identificata non ho l'anomalia???

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:Chi mi aiuta a capire l'errore?
« Risposta #5 il: 16 Dicembre 2014, 11:46:19 CET »
0
Se l'errore è a quella riga, vuol dire che map è NULL.

E lo verifichi facilmente con 1 riga di codice:
Codice (Java): [Seleziona]
if (map==null) Log.e("TAG","map is NULL");
Tra l'altro non si dovrebbe mai scrivere una cosa del genere:
Codice (Java): [Seleziona]
map.setMyLocationEnabled(true);
ma sempre nella forma:
Codice (Java): [Seleziona]
if (map!=null) map.setMyLocationEnabled(true);
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline piterpaolo

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia V
  • Play Store ID:
    Piterpaolo
  • Sistema operativo:
    Windows 7
Re:Chi mi aiuta a capire l'errore?
« Risposta #6 il: 16 Dicembre 2014, 11:50:58 CET »
0
Grazie mille proverò e ti farò sapere ;-)

Ma come mai nelle versioni superiori di Android non riscontro l'anomalia?
« Ultima modifica: 16 Dicembre 2014, 11:54:17 CET da piterpaolo »

Offline piterpaolo

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia V
  • Play Store ID:
    Piterpaolo
  • Sistema operativo:
    Windows 7
Re:Chi mi aiuta a capire l'errore?
« Risposta #7 il: 18 Dicembre 2014, 10:49:00 CET »
0
Dopo aver apportato le modifiche suggerite le cose purtroppo sono peggiorate.
Infatti ora l'app su dispositivi 2.x non si avvia nemmeno e non mi da la possibilità di inviare il log con l'errore.
Esce solo il messaggio che l'app si è bloccata in modo anomalo  :-o :-o :-o

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Chi mi aiuta a capire l'errore?
« Risposta #8 il: 18 Dicembre 2014, 11:05:23 CET »
0
Dopo aver apportato le modifiche suggerite le cose purtroppo sono peggiorate.
Infatti ora l'app su dispositivi 2.x non si avvia nemmeno e non mi da la possibilità di inviare il log con l'errore.
Esce solo il messaggio che l'app si è bloccata in modo anomalo  :-o :-o :-o
se si è bloccata in modo anomalo viene generato il logcat. Via adb lo puoi reperire SEMPRE.
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline piterpaolo

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia V
  • Play Store ID:
    Piterpaolo
  • Sistema operativo:
    Windows 7
Re:Chi mi aiuta a capire l\'errore?
« Risposta #9 il: 18 Dicembre 2014, 11:17:33 CET »
0
Stavo infatti pensando di creare un emulatore con Android 2.x e vedere se riesco a recuperare l'anomalia.

Post unito: [time]19 Dicembre 2014, 10:36:24 CET[/time]
Allora cercando di risolvere il problema de mancato funzionamento sui dispositivi 2.x ho provveduto, come anche suggerito, a creare un emulatore con queste caratteristiche:
Target: Google APIs (Google Inc.) - API level 10

Premesso che nel manifest ho :
 <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

Per cui dovrei avere la retrocompatibilità anche con 2.3 ad es.
Nel momento in cui avvio l'APP, come si verifica sul dispositivo con 2.x, la stessa si blocca e questo è il LogCat
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
12-19 09:26:52.506: I/dalvikvm(664): Could not find method android.app.AlertDialog$Builder.<init>, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.a
12-19 09:26:52.506: W/dalvikvm(664): VFY: unable to resolve direct method 145: Landroid/app/AlertDialog$Builder;.<init> (Landroid/content/Context;I)V
12-19 09:26:52.506: D/dalvikvm(664): VFY: replacing opcode 0x70 at 0x002c
12-19 09:26:52.516: I/dalvikvm(664): Could not find method android.app.Activity.getFragmentManager, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.b
12-19 09:26:52.516: W/dalvikvm(664): VFY: unable to resolve virtual method 94: Landroid/app/Activity;.getFragmentManager ()Landroid/app/FragmentManager;
12-19 09:26:52.526: D/dalvikvm(664): VFY: replacing opcode 0x6e at 0x0023
12-19 09:26:52.526: D/dalvikvm(664): VFY: dead code 0x0026-0030 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (ILandroid/app/Activity;Landroid/support/v4/app/Fragment;ILandroid/content/DialogInterface$OnCancelListener;)Z
12-19 09:26:52.526: D/dalvikvm(664): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp
12-19 09:26:52.526: W/dalvikvm(664): VFY: unable to resolve instance field 60
12-19 09:26:52.526: D/dalvikvm(664): VFY: replacing opcode 0x52 at 0x0012
12-19 09:26:52.526: D/dalvikvm(664): VFY: dead code 0x0014-0018 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z
12-19 09:26:52.556: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.556: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.566: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.566: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.576: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.576: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.586: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.586: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.596: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.606: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.616: W/GooglePlayServicesUtil(664): Google Play services is missing.
12-19 09:26:52.616: D/AndroidRuntime(664): Shutting down VM
12-19 09:26:52.616: W/dalvikvm(664): threadid=1: thread exiting with uncaught exception (group=0x40015560)
12-19 09:26:52.626: E/AndroidRuntime(664): FATAL EXCEPTION: main
12-19 09:26:52.626: E/AndroidRuntime(664): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.ppp.followme/it.ppp.followme.FollowMe}: java.lang.NullPointerException
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.os.Looper.loop(Looper.java:130)
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.app.ActivityThread.main(ActivityThread.java:3683)
12-19 09:26:52.626: E/AndroidRuntime(664):    at java.lang.reflect.Method.invokeNative(Native Method)
12-19 09:26:52.626: E/AndroidRuntime(664):    at java.lang.reflect.Method.invoke(Method.java:507)
12-19 09:26:52.626: E/AndroidRuntime(664):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-19 09:26:52.626: E/AndroidRuntime(664):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-19 09:26:52.626: E/AndroidRuntime(664):    at dalvik.system.NativeStart.main(Native Method)
12-19 09:26:52.626: E/AndroidRuntime(664): Caused by: java.lang.NullPointerException
12-19 09:26:52.626: E/AndroidRuntime(664):    at it.ppp.followme.FollowMe.onCreate(FollowMe.java:219)
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-19 09:26:52.626: E/AndroidRuntime(664):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Nella linea FollowMe.java:219 ho
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
Noto anche
Google Play services is missing (ma come faccio ad aggiungerlo all'emulatore?)
Non riesco a capire il perchè del blocco anomalo.
« Ultima modifica: 19 Dicembre 2014, 10:37:50 CET da piterpaolo, Reason: Merged DoublePost »