Gyönyörű szép hibaüzenet :). Látszik, hogy valami a betűméret körül lehet. És igen. Kicsit utánaolvastam és a hiba arra vezethető vissza, hogy a kódban valahol a betűméretet nem számmal, hanem szöveggel adtam meg.
Ez annyira „szép” hiba, hogy bele is tettem a „Hibák és megoldások” csoportba.
Android most a szűk keresztmetszet
A hibával akkor találkoztam, amikor az appot iOS után egy Samsung telón teszteltem. Az app elindult, aztán szó szerint felvillant a piros hibaképernyő, majd crash-elt az Expo Go a telón. Épphogy sikerült elkapnom a hibát, mert a konzolban nem jelent meg:

Tehát az iOS rendszer le tudta kezelni, az Android azonban már szigorúbb volt. Lehetne vitatkozni, hogy melyik a jobb, de inkább ne menjünk bele. Az iOS is szokott hisztizni olyanon, amin az Android viszont nem.
Megoldás
Nem kell a sok rizsa, leírom hogyan oldottam meg a dolgot. Rákerestem az összes általam készített fájlban (kihagyva a node_modules könyvtárat!), hogy vajon hol használtam a „font-size”, „size”, „fontSize” szavakat.
A találatok közül elsősorban azok érdekeltek, ahol valóban a betűtípust adtam meg. Rá is bukkantam néhány helyen arra, hogy egy általam készített Icon komponens paraméterezésénél valóban sztringként adtam meg a betűméretet:
<Icon
iconFamilyName="MaterialCommunityIcons"
name="account-edit"
size=<strong>"24"</strong>
color={colors.ui.darkIceBlue}
/>
Helyesen így kellett volna megadni:
size={24}
Javítottam, azonban az első próbálkozásom sikertelen volt, mert az app változatlanul dobta a hibát, majd szerényen összeomlott. Ugyanis nem voltam elég alapos, és nem javítottam ki mindenhol. Aztán amint az összes helyen átírtam, megszűnt a hiba és az Android is abbahagyta a hisztit :).
Tanulság
Az egészből azt a következtetést vontam le, hogy
- Érdemes egy fejlesztést azonnal tesztelni mindkét rendszeren (iOS, Android).
- Amit számként kell megadni azt ne sztringként adjuk át!
- A fenti malőrt talán elkerülhettem volna, ha az értéket kiemelem mondjuk egy metrics.js fájlba, ahol az összes olyan méretezést tárolom, amit az appon belül használok. Ezt utólag meg is tettem, így a kódban már így néz ki:
size={metrics.fontSize24}
A metrics.js-ből a részlet pedig értelem szerűen így fest (de ez csak egy példa, lehet tömbben vagy objektumban is megadni a többi mérettel együtt):
const fontSize24 = 24;
Forrás
Azért mellékelem azt a linket is, ami a megoldásban segített.