/ / TTSの原因となるIllegalArgumentException:無効なint: "OS" onInitの中にはアンドロイドAPi 23搭載の一部のSamsungデバイス - Android、text-to-speech、illegalargumentexception

TTSが原因でIllegalArgumentExceptionが発生しました:無効なint: "OS" onInit中にアンドロイドAPi 23搭載の一部のSamsungデバイス - Android、text-to-speech、illegalargumentexception

大規模な調査の後、私はまだこの問題の回避策または解決策を見つけることができません。

TTS(Text-To-Speech)が原因でIllegalArgumentExceptionが発生しました:無効なint: "OS" onroidの中に、android api 23を搭載した一部のSamsungデバイス。

  • コード:

    public void TTSInit(){
    mTextToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
    
    @Override
    public void onInit(int status) {
    if (status != TextToSpeech.ERROR) {
    Log.i(TAG, "entered ttsinit");
    mTextToSpeech.setLanguage(Locale.ENGLISH);
    }
    }
    });
    }
    
  • スタックトレース:

    java.lang.IllegalArgumentException: Invalid int: "OS"
    at android.os.Parcel.readException(Parcel.java:1624)
    at android.os.Parcel.readException(Parcel.java:1573)
    at android.speech.tts.ITextToSpeechService$Stub$Proxy.getVoices(ITextToSpeechService.java:796)
    at android.speech.tts.TextToSpeech.getVoice(TextToSpeech.java:1769)
    at android.speech.tts.TextToSpeech.access$1100(TextToSpeech.java:59)
    at android.speech.tts.TextToSpeech$12.run(TextToSpeech.java:1581)
    at android.speech.tts.TextToSpeech$12.run(TextToSpeech.java:1531)
    at android.speech.tts.TextToSpeech$Connection.runAction(TextToSpeech.java:2337)
    at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:747)
    at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:737)
    at android.speech.tts.TextToSpeech.setLanguage(TextToSpeech.java:1531)
    at com.jisoopaullee.myengvocamanager.MainActivity$3.onInit(MainActivity.java:325)
    at android.speech.tts.TextToSpeech.dispatchOnInit(TextToSpeech.java:820)
    at android.speech.tts.TextToSpeech.access$1900(TextToSpeech.java:59)
    at android.speech.tts.TextToSpeech$Connection$SetupConnectionAsyncTask.onPostExecute(TextToSpeech.java:2251)
    at android.speech.tts.TextToSpeech$Connection$SetupConnectionAsyncTask.onPostExecute(TextToSpeech.java:2206)
    at android.os.AsyncTask.finish(AsyncTask.java:651)
    at android.os.AsyncTask.access$500(AsyncTask.java:180)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:158)
    at android.app.ActivityThread.main(ActivityThread.java:7225)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
    

ありがとう。

回答:

回答№1の場合は-1
        int iLcl=mTts.setLanguage(new Locale(stringsLcl[0],stringsLcl[1]));//
if(iLcl == TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE){
Voice voiceLcl = mTts.getVoice();
if(null == voiceLcl)
l.a(800);// pardon, my logging
Set<String> featuresLcl=voiceLcl.getFeatures();
l.a(featuresLcl.size());
for(String sLcl : featuresLcl)
l.a("feature = "+ sLcl);
};
l.a(stringsLcl[0]+stringsLcl[1]);

String myText1 = hashtumPoraMatnash;
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, null);