Android, Eclipse e strani errori di XML
Stavo giocando a Minecraft (beh? Uno non può mica sempre lavorare) quando mi è tornata in mente la pessima esperienza che ho avuto in questi giorni con Android SDK, e più precisamente con Eclipse; voglio condividere con voi il momento di colorite bestemmie da "peggiori bar di Caracas" (o di Abbiategrasso), quando ho scoperto che ad un problema grande la soluzione era semplice. Anzi. In realtà non era proprio un problema, ma non vi spoilero :D
Succede che in questi giorni mi sto dilettando con Android e lo sviluppo per il sistema di casa Google. Ho scaricato Eclipse, il plugin dedicato, l'SDK. Al suo primo avvio, mi scarica tutte le API di questo mondo e le relative piattaforme con emulatori annessi per test e APK building; succesivamente, vado a scrivere un po' di robaccia tanto per testare. Noto che funziona tutto al primo colpo (e quando io programmo nulla funziona mai al primo colpo, quindi questo è un grandissimo evento), tuttavia una volta cominciato il viaggio nelle profondità degli abissi androidiani, mi ha colpito il fatto che anche senza aver modificato una beata mazza il mio software non compilasse più. Figo. E come mai?
'default' is not a best match for any device/locale combination.
Displaying it with 'Locale Language ___Region __, sw320dp, w320dp, h533dp, Normal Screen, Long screen aspect ratio, Portrait Orientation, Normal, Day time, High Density, Finger-based touchscreen, Soft keyboard, No keyboard, Exposed navigation, Trackball navigation, Screen resolution 800x480, API Level 10' which is compatible, but will actually be displayed with another more specific version of the layout.
Error in an XML file: aborting build.
Continuo a non capirci una mazza finché, sconsolato, non chiudo l'SDK e mi metto a fare altro. (Nello specifico, seguire la lezione. Si, stavo programmando mentre il prof spiegava - e per inciso dopo è anche venuto a dirmi "oh ma stai programmando Android! Fighissimo!")
Il giorno dopo, un po' insonnolito, riapro Eclipse e lancio il build dell'APK, con conseguente esecuzione in emulazione. Tutto liscio. Allora comincio a cercare su Google, smaliziato, e trovo effettivamente dei risultati; nessuno che si applichi al mi caso però: dopo un po' il problema di ripresenta identico e non serve a niente fare Clean, o chiudere e riaprire. Poi mi coglie l'ispirazione.
E decido di riaprire Eclipse, e lanciare la sequenza di build dal file principale che contiene la Main Activity: boom, tutto funziona alla grande. Cambio file, di nuovo stesso errore.
Conclusione? Beh, lesson learned: non fate gli idioti come me. Lanciate l'applicazione dal file principale.