Autore Topic: Unknown pattern character 'i'  (Letto 870 volte)

Offline francesco82

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Unknown pattern character 'i'
« il: 05 Giugno 2012, 18:53:20 CEST »
0
Salve a tutti,
ho ricevuto un report di arresto anomalo da una mia applicazione;
cercando sia nel forum non ho trovato nulla che mi aiutasse a farmi capire quale sia il problema.
Di seguito riporto il LOGCAT dell'errore:

Codice (Java): [Seleziona]
java.lang.RuntimeException: Unable to start activity ComponentInfo{it.mypackage.myapp/it.mypackage.myapp.MyActivity}:
java.lang.IllegalArgumentException: Unknown pattern character 'i'
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
at android.app.ActivityThread.access$1500(ActivityThread.java:121)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:138)
at android.app.ActivityThread.main(ActivityThread.java:3701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Unknown pattern character 'i'
at java.text.SimpleDateFormat.validateFormat(SimpleDateFormat.java:267)
at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:308)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:368)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:252)
at it.mypackage.utility_android.DateUtility.<init>(DateUtility.java:29)
at it.mypackage.myapp.MyActivity.onCreate(MyActivity.java:41)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
... 11 more

il codice che genera errore è di seguito riportato:

Codice (Java): [Seleziona]
25   String format = System.getString(contentResolver, System.DATE_FORMAT);
...
29   dateFormat = new SimpleDateFormat(format);

per il calcolo del format ho usato la funzione nativa di android,
per cui non riesco a spiegarmi come possa andare in errore!!
Potete darmi qualche dritta??
grazie in anticipo




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:Unknown pattern character 'i'
« Risposta #1 il: 05 Giugno 2012, 20:11:58 CEST »
0
bisognerebbe sapere qual è la stringa che ha generato l'errore...
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 francesco82

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Unknown pattern character 'i'
« Risposta #2 il: 05 Giugno 2012, 23:02:53 CEST »
0
Grazie Nicola per avermi risposto,
per quello che ho capito dal LOGCAT alla riga 41 dell'OnCreate della mia Activity

Codice (Java): [Seleziona]
at it.mypackage.myapp.MyActivity.onCreate(MyActivity.java:41)
chiamo la classe DateUtility che va in eccezione nel costruttore alla riga 29

Codice (Java): [Seleziona]
at it.mypackage.utility_android.DateUtility.<init>(DateUtility.java:29)
vedendo il codice della classe alla riga 29 c'è il comando

Codice (Java): [Seleziona]
dateFormat = new SimpleDateFormat(format);
che, secondo me, può andare in eccezione solo per il parametro "format",
calcolato alla riga 25 come segue:

Codice (Java): [Seleziona]
String format = System.getString(contentResolver, System.DATE_FORMAT);
Sembra come se System.getString(contentResolver, System.DATE_FORMAT) tiri fuori un carattere 'i' in "format"
che poi SimpleDateFormat non riconosce;
ma non riesco a capire come possa essere possibile visto che System.DATE_FORMAT dovrebbe risponde solo con una stringa del tipo
"mm/dd/yyyy"  o con "dd/mm/yyyy" oppure "yyyy/mm/dd"

che ne pensi?


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:Unknown pattern character 'i'
« Risposta #3 il: 06 Giugno 2012, 07:51:27 CEST »
0
Se fai stampare la stringa incriminata nel LogCat, cosa esce?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline francesco82

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Unknown pattern character 'i'
« Risposta #4 il: 06 Giugno 2012, 08:41:47 CEST »
0
Ciao bradipao,
purtroppo il report mi è giunto dal market. Su emulatore non sono riuscito a replicare l'errore,
per cui non posso conoscere il valore della stringa, né tantomeno ho la possibilità di contattare l'utente.
Potrebbe essere un'impostazione particolare del formato date
(magari l'utente è di un paese in cui il dateformat contiene il carattere 'i')?

Grazie.