Italian [B4J][XUI] FontAwesome.otf non trovato se si usa libreria che ne fa uso

calsdn

Member
Licensed User
Un caro saluto a tutti.

[B4J 6.51][XUI]
Sto sperimentando la creazione di librerie.
Quella su cui mi sto cimentando usa il font Fontawesome.
Quando eseguo il programma dove sto mettendo appunto la libreria nessun problema riscontrato.
Faccio [alt] + [5] e aggiorno la libreria nel reference ...

Quando su un nuovo programma uso la libreria sopra creata ed eseguo il programma mi viene fuori:
java.io.FileNotFoundException: FontAwesome.otf

se nel nuovo programma scrivo nella "Process_Globals"
B4X:
Private mFont As Font = fx.CreateFontAwesome( 14)

ed eseguo il programma tutto fila liscio.

Si può evitare di fare questo nel programma che usa la libreria?

Sono stato ispirato per questo workarround da https://www.b4x.com/android/forum/threads/fontawesome-in-library.91222/
 

Star-Dust

Expert
Licensed User
Longtime User
Se nella libreria usi il FontAwesone non viene caricata automaticamente dall'App.
Il compilatore non riesce a vedere i fondi aggiuntivi che usi quindi Devi inserirlo nell' app.

Devi scrivere nella tua App qualcosa del genere:
B4X:
Dim F As Typeface = Typeface.FONTAWESOME
e il compilatore automaticamente ti aggiungerà il font
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Sto sperimentando la creazione di librerie.
Dato che questo è il motivo...

Ogni file di risorsa, come i file dei font, immagini o qualunque file altro file usato dalla libreria, andrebbe inglobato nella libreria stessa (a meno che tu non informi l'utilizzatore della libreria che egli deve usare questi file e magari glieli fornisci separatamente rispetto al jar, ma è una soluzione meno "elegante" e pratica).

Il modo per farlo è spiegato qui:
https://www.b4x.com/android/forum/threads/embedding-files-in-compiled-libraries.37689/
 

calsdn

Member
Licensed User
Dato che questo è il motivo...

Ogni file di risorsa, come i file dei font, immagini o qualunque file altro file usato dalla libreria, andrebbe inglobato nella libreria stessa (a meno che tu non informi l'utilizzatore della libreria che egli deve usare questi file e magari glieli fornisci separatamente rispetto al jar, ma è una soluzione meno "elegante" e pratica).

Il modo per farlo è spiegato qui:
https://www.b4x.com/android/forum/threads/embedding-files-in-compiled-libraries.37689/

Grazie LucaMS e Star-Dust
 
Top