Autore Topic: JSOUP - ExceptionInInitializerError caricando le Entities  (Letto 372 volte)

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
JSOUP - ExceptionInInitializerError caricando le Entities
« il: 09 Settembre 2013, 12:06:41 CEST »
0
Sto provando ad usare Jsoup (1.7.2) per il parsing di una pagina html, ma sto avendo qualche difficoltà.
Indagando nel sorgente sono risalito al fatto che quando jsoup si inizializza non riesce a caricare il file entities-base.properties nella classe org.jsoup.nodes.Entities

Codice (Java): [Seleziona]
      private static Map<String, Character> loadEntities(String filename) {
        Properties properties = new Properties();
        Map<String, Character> entities = new HashMap<String, Character>();
        try {
            InputStream in = Entities.class.getResourceAsStream(filename);

"in" risulta difatti null.

Sembra in sostanza che il class loader di android non sia in grado di recuperare il file properties contenuto nella libreria.

Qualcuno di vuoi è incappato nello stesso problema?

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:JSOUP - ExceptionInInitializerError caricando le Entities
« Risposta #1 il: 09 Settembre 2013, 16:57:56 CEST »
0
Alcune idee (a me non è mai capitato e non so se funzionano).

1- chiudi e quindi riapri eclipse
2- prova con un clean del progetto
3- il file .jar di jsoup dove lo hai messo? nella cartella libs?
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:JSOUP - ExceptionInInitializerError caricando le Entities
« Risposta #2 il: 09 Settembre 2013, 17:58:14 CEST »
0
Alcune idee (a me non è mai capitato e non so se funzionano).

1- chiudi e quindi riapri eclipse
2- prova con un clean del progetto
3- il file .jar di jsoup dove lo hai messo? nella cartella libs?

Tutte idee ottime ma che (per mia sfortuna) ho già verificato ;)
Spulciando in giro per la rete pare che questo problema sia abbastanza diffuso quando si utilizza proguard per l'offuscamento del codice; la cosa strana è che non ho proguard abilitato.
Fortunatamente jsoup è open source, e quindi ho fatto una scelta drastica (anche perché non potevo impazzirci sopra troppo a lungo): ho tolto il jar dalle libs e ho aggiunto direttamente i sorgenti in src.
E' un workaround orrendo, ma così facendo il class loader trova il properties senza problemi e almeno posso proseguire con gli sviluppi.

Offline matttt

Re:JSOUP - ExceptionInInitializerError caricando le Entities
« Risposta #3 il: 09 Settembre 2013, 18:39:03 CEST »
0
Io uso Jsoup in una mia app ed ho utilizzato anche io il sistema di includere i sorgenti.
Inizialmente usavo il JAR (ma non avevo riscontrato problemi), poi per cercare di ridurre la dimensione dell'APK ho inserito i sorgenti di tutta la libreria (così il compilatore scarta le classi che non usa). ProGuard off invece, mi crea altri problemi :)
Le mie apps su Google Play Store: