2010-09-09 9 views
0

Я получаю следующую трассировку стека от некоторых телефонов, работающих под моим приложением.Ошибка при загрузке TTS

Это отлично работает на моем G1 и эмуляторе, у меня никогда не было никаких проблем. Но я получаю следующую трассировку стека от других пользователей.

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.droidprofessor.android.mmm/com.droidprofessor.android.mmm.ActivityGame}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.speech.tts.engine.CHECK_TTS_DATA } 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
     at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:123) 
     at android.app.ActivityThread.main(ActivityThread.java:4363) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:521) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.speech.tts.engine.CHECK_TTS_DATA } 
     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 
     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 
     at android.app.Activity.startActivityForResult(Activity.java:2749) 
     at com.droidprofessor.android.mmm.ActivityGame.loadServices(ActivityGame.java:285) 
     at com.droidprofessor.android.mmm.ActivityGame.onCreate(ActivityGame.java:105) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
     ... 11 more 

Деятельность: TTS. GameActivity расширяет эту деятельность.

public class ActivityTTS extends Activity implements OnInitListener { 
//TEXT TO SPEECH SERVICE 
public static final int CHECK_TTS_AVAILABILITY = 0; 
private static final String TAG = "ActivityTTS"; 
private TextToSpeech mTts; //Text to speech library 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //TTS Service 
    Intent checkIntent = new Intent(); 
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); 
    startActivityForResult(checkIntent, CHECK_TTS_AVAILABILITY); 
} 

/** 
* For TTS 
*/ 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    try { 
     if(Logging.DEBUG_LOG) Log.d(TAG, "TTS Response: "+requestCode); 
     if (requestCode == CHECK_TTS_AVAILABILITY) { 
      if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) { 

       // success, create the TTS instance 
       mTts = new TextToSpeech(this, this);    

      } else { 
       // missing data, install it 
       Toast.makeText(getApplicationContext(), R.string.install_audio_data, Toast.LENGTH_LONG).show(); 

       Intent installIntent = new Intent(); 
       installIntent.setAction(
         TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); 
       startActivity(installIntent); 

       finish(); 
      } 
     } 
    }catch (Exception e) { 
     if(Logging.ERROR_LOG) Log.e(TAG, "Unable to access service"); 
     finish(); 
    } 

} 




/** 
* Loads when the TTS is ready 
*/ 
@Override 
public void onInit(int status) { 
    mTts.setLanguage(Locale.getDefault()); 
} 


/** 
* Speak text 
*/ 
final void speak(String text) { 
    try{ 
     mTts.stop(); //Stop speaking 
     mTts.speak(text, TextToSpeech.QUEUE_FLUSH, null); 
    } 
    catch(Exception e) { 
     if (Logging.ERROR_LOG) Log.e(TAG, "TTS Failed - cannot say: "+text); 
    } 

} 


@Override 
protected void onDestroy() { 
    super.onDestroy(); 

    //Close the Text to Speech Library 
    if(mTts != null) mTts.shutdown(); 
} 

}

ответ

1

Проверьте SDK, что вы работаете в этом конкретном устройстве. TexttoSpeech API был введен только с Android 1.6 SDK. Поэтому, если вы используете 1.5 SDK, вы можете столкнуться с этой проблемой.

http://android-developers.blogspot.com/2009/09/introduction-to-text-to-speech-in.html

Это место, где вы должны получать эту ошибку. Он пытается перейти к пользователю андроида рынка, чтобы загрузить приложение ... Проверьте выше link.They бы определил его там ...

Там был уже проблема, которая была подан на том же , Вероятно, вам нужно немного изменить условия.

IntentNotFoundException for TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA

Смежные вопросы