Autore Topic: java.lang.ExceptionInInitializerError, come risolvere?  (Letto 718 volte)

Offline GennyAndroid

  • Utente junior
  • **
  • Post: 116
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
  • Play Store ID:
    Gennaro Petito
  • Sistema operativo:
    Windows 7
java.lang.ExceptionInInitializerError, come risolvere?
« il: 15 Aprile 2013, 15:45:47 CEST »
0
Salve raga, sto realizzando un'app che fa utilizzo del Text to Speech, funziona alla perfezione, ma su un mio tablet di marca INTREEO (marca scadente), mi viene lanciata questa eccezione

Codice (Java): [Seleziona]
I/ActivityManager( 158): Start proc com.google.android.tts for service com.google.android.tts/.GoogleTTSService: pid=10270 uid=10046 gids={3003, 1015}
W/dalvikvm(10270): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/google/android/tts/network/BufferedSpeexDecoder;
D/AndroidRuntime(10270): Shutting down VM
W/dalvikvm(10270): threadid=1: thread exiting with uncaught exception (group=0x40a721f8)
E/AndroidRuntime(10270): FATAL EXCEPTION: main
E/AndroidRuntime(10270): java.lang.ExceptionInInitializerError
E/AndroidRuntime(10270): at com.google.android.tts.network.NetworkSynthesizer. <init>(NetworkSynthesizer.java:66)
E/AndroidRuntime(10270): at com.google.android.tts.network.NetworkSynthesizer. <init>(NetworkSynthesizer.java:58)
E/AndroidRuntime(10270): at com.google.android.tts.GoogleTTSService.onCreate(G oogleTTSService.java:34)
E/AndroidRuntime(10270): at android.app.ActivityThread.handleCreateService(Act ivityThread.java:2252)
E/AndroidRuntime(10270): at android.app.ActivityThread.access$1600(ActivityThr ead.java:122)
E/AndroidRuntime(10270): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1200)
E/AndroidRuntime(10270): at android.os.Handler.dispatchMessage(Handler.java:99 )
E/AndroidRuntime(10270): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(10270): at android.app.ActivityThread.main(ActivityThread.jav a:4340)
E/AndroidRuntime(10270): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(10270): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(10270): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:784)
E/AndroidRuntime(10270): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:551)
E/AndroidRuntime(10270): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(10270): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load speexwrapper: findLibrary returned null
E/AndroidRuntime(10270): at java.lang.Runtime.loadLibrary(Runtime.java:365)
E/AndroidRuntime(10270): at java.lang.System.loadLibrary(System.java:535)
E/AndroidRuntime(10270): at com.google.android.tts.network.BufferedSpeexDecode r.<clinit>(BufferedSpeexDecoder.java:17)
E/AndroidRuntime(10270): ... 14 more

A quanto ho capito, l'ExceptionInInitializerError viene lanciato quando mancano addirittura le stesse API di android.
Ho pensato di mettere il try catch quando richiamo quella classe, ma mi lancia ancora l'eccezione.

Codice (Java): [Seleziona]
@Override
        protected void onResume() {
                super.onResume();      

                try{
                        talker = new TextToSpeech(Main.this, Main.this);        
                }catch (ExceptionInInitializerError e ) {
                        //eccezione    
                }
        }

Essendo un dispositivo scadente non riesco nemmeno a collegarlo al pc per utilizzare il debug di eclipse per capire in che punto preciso viene sollevata l'eccezione (ho preso il logcat grz ad un'app che in bacground registra tutti i log).

ho pensato che forse sono le stesse import che genereano l'eccezione.

Codice (Java): [Seleziona]
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;

oppure dato che la classe implementa OnInitListener potrebbe essere questo il problema?
« Ultima modifica: 17 Aprile 2013, 11:47:59 CEST da GennyAndroid »

Offline GennyAndroid

  • Utente junior
  • **
  • Post: 116
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
  • Play Store ID:
    Gennaro Petito
  • Sistema operativo:
    Windows 7
Re:java.lang.ExceptionInInitializerError, come risolvere?
« Risposta #1 il: 23 Aprile 2013, 01:58:15 CEST »
0
up

Offline lorux

  • Utente junior
  • **
  • Post: 97
  • Respect: +12
    • Google+
    • lor.catalano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Sistema operativo:
    Windows
Re:java.lang.ExceptionInInitializerError, come risolvere?
« Risposta #2 il: 23 Aprile 2013, 08:34:11 CEST »
0
ma oltre che in eclipse hai messo la libreria tra le dipendenze del progetto?

Offline GennyAndroid

  • Utente junior
  • **
  • Post: 116
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
  • Play Store ID:
    Gennaro Petito
  • Sistema operativo:
    Windows 7
Re:java.lang.ExceptionInInitializerError, come risolvere?
« Risposta #3 il: 23 Aprile 2013, 11:12:43 CEST »
0
ma oltre che in eclipse hai messo la libreria tra le dipendenze del progetto?

Scusami per la domanda forse banale, come si fa a mettere la libreria tra le dipendenze (cosa vuol dire)?
Io so che la libreria del TTS è gia compresa di default nell'SDK

Offline GennyAndroid

  • Utente junior
  • **
  • Post: 116
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
  • Play Store ID:
    Gennaro Petito
  • Sistema operativo:
    Windows 7
Re:java.lang.ExceptionInInitializerError, come risolvere?
« Risposta #4 il: 30 Aprile 2013, 12:19:31 CEST »
0
up