2017-08-10 71 views
1

我在Android Studio上使用IBM Watson Speech to Text API时遇到了一些问题。我遵循https://github.com/watson-developer-cloud/java-sdk/tree/develop/speech-to-text的说明。 这是我的MainActivity代码:什么是Android Studio上的java.lang.ExceptionInInitializerError和java.lang.IllegalArgumentException?

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Log.w("debug_prog", "[+] Start"); 

    SpeechToText service = new SpeechToText("cff16fe4-6a27-4289-a343-a394e1c94c2x", "XStw1ieErTkx"); 
    if(service == null){ 
     Log.w("debug_prog", "[-] Service is null"); 

    } 

    Log.w("debug_prog", "[+] Object Created"); 


    File audio = new File("src/test/resources/audio_001.wav"); 
    Log.w("debug_prog", "[+] Audio: " + String.valueOf(audio)); 

    SpeechResults transcript = service.recognize(audio).execute(); 
    Log.w("debug_prog", "[+] Result: " + String.valueOf(transcript)); 

} 

}

但是当我编上Android手机的代码(API 22)我得到了一些错误是这样的:

08-10 21:46:05.367 12047-12047/com.example.albertus.speechtotext E/AndroidRuntime: FATAL EXCEPTION: main 
                       Process: com.example.albertus.speechtotext, PID: 12047 
                       java.lang.ExceptionInInitializerError 
                        at com.example.albertus.speechtotext.MainActivity.onCreate(MainActivity.java:33) 
                        at android.app.Activity.performCreate(Activity.java:6093) 
                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2458) 
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2577) 
                        at android.app.ActivityThread.access$1000(ActivityThread.java:164) 
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1462) 
                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                        at android.os.Looper.loop(Looper.java:159) 
                        at android.app.ActivityThread.main(ActivityThread.java:5541) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at java.lang.reflect.Method.invoke(Method.java:372) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:975) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770) 
                       Caused by: java.lang.IllegalArgumentException: Unknown pattern character 'X' 
                        at java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:314) 
                        at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:303) 
                        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:356) 
                        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:249) 
                        at com.ibm.watson.developer_cloud.util.DateDeserializer.<init>(DateDeserializer.java:52) 
                        at com.ibm.watson.developer_cloud.util.GsonSingleton.registerTypeAdapters(GsonSingleton.java:53) 
                        at com.ibm.watson.developer_cloud.util.GsonSingleton.createGson(GsonSingleton.java:42) 
                        at com.ibm.watson.developer_cloud.util.GsonSingleton.getGsonWithoutPrettyPrinting(GsonSingleton.java:76) 
                        at com.ibm.watson.developer_cloud.speech_to_text.v1.SpeechToText.<clinit>(SpeechToText.java:119) 
                        at com.example.albertus.speechtotext.MainActivity.onCreate(MainActivity.java:33)  
                        at android.app.Activity.performCreate(Activity.java:6093)  
                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)  
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2458)  
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2577)  
                        at android.app.ActivityThread.access$1000(ActivityThread.java:164)  
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1462)  
                        at android.os.Handler.dispatchMessage(Handler.java:102)  
                        at android.os.Looper.loop(Looper.java:159)  
                        at android.app.ActivityThread.main(ActivityThread.java:5541)  
                        at java.lang.reflect.Method.invoke(Native Method)  
                        at java.lang.reflect.Method.invoke(Method.java:372)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:975)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)  

这个错误发生时我创建SpeechToText对象,请帮助,谢谢:)

回答