2010-09-09 176 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

這是你必須得到該錯誤的地方。它試圖導航的用戶到Android市場下載的應用程序...檢查上述link.They就會有指定的吧...

有過已經已經申請同一問題。可能你需要改變一些條件。

IntentNotFoundException for TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA

相關問題