Android 应用程序出现 BlueMix 服务错误 - “未知模式字符 'X'”
BlueMix service error with Android app - 'Unknown pattern character 'X''
我正在开发 android 应用程序并尝试集成 Bluemix 服务 - Personality Insights。但是,由于日期冲突(Bluemix 服务假设 Java SimpleDateFormat 包含符号 'X',而 Android 的 SimpleDateFormat 不包含此符号)导致错误(日志以下)。我的问题是,有没有办法强制应用程序使用 Java SimpleDateFormat 版本而不是 Android 版本?除此之外,我不知道如何在不切换 Bluemix 以适应日期中的 'X' 字符的情况下使用该服务。任何对此主题的启发将不胜感激!
日志:
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 com.google.gson.DefaultDateTypeAdapter.<init>(DefaultDateTypeAdapter.java:49)
at com.google.gson.GsonBuilder.addTypeAdaptersForDate(GsonBuilder.java:555)
at com.google.gson.GsonBuilder.create(GsonBuilder.java:543)
at com.ibm.watson.developer_cloud.util.GsonSingleton.createGson(GsonSingleton.java:53)
at com.ibm.watson.developer_cloud.util.GsonSingleton.getGson(GsonSingleton.java:38)
at com.ibm.watson.developer_cloud.concept_expansion.v1.ConceptExpansion.createJob(ConceptExpansion.java:147)
at intercept.notification.notify.MainActivity$PlaceholderFragment$Persona.doInBackground(MainActivity.java:106)
at intercept.notification.notify.MainActivity$PlaceholderFragment$Persona.doInBackground(MainActivity.java:84)
我对此进行了相当多的调试,但不知道如何强制使用 Java 版本的 SimpleDataFormat 而不是 Android 版本。两者之间的差异可以在这里看到:
Java(其中包括 Bluemix 服务所需的符号 'X' - http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Android(不包括它)- http://developer.android.com/reference/java/text/SimpleDateFormat.html
问题
我们使用的 'X' 不受 Android 中的 jdk 1.6 支持。
该问题已在 v1.1.1 中修复。
正在更新依赖关系
马文:
<dependency>
<groupId>com.ibm.watson.developer_cloud</groupId>
<artifactId>java-wrapper</artifactId>
<version>1.1.1</version>
</dependency>
Gradle:
'com.ibm.watson.developer_cloud:java-wrapper:1.1.1'
- 正在从 github 下载 jar-with-dependencies。
我正在开发 android 应用程序并尝试集成 Bluemix 服务 - Personality Insights。但是,由于日期冲突(Bluemix 服务假设 Java SimpleDateFormat 包含符号 'X',而 Android 的 SimpleDateFormat 不包含此符号)导致错误(日志以下)。我的问题是,有没有办法强制应用程序使用 Java SimpleDateFormat 版本而不是 Android 版本?除此之外,我不知道如何在不切换 Bluemix 以适应日期中的 'X' 字符的情况下使用该服务。任何对此主题的启发将不胜感激!
日志:
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 com.google.gson.DefaultDateTypeAdapter.<init>(DefaultDateTypeAdapter.java:49)
at com.google.gson.GsonBuilder.addTypeAdaptersForDate(GsonBuilder.java:555)
at com.google.gson.GsonBuilder.create(GsonBuilder.java:543)
at com.ibm.watson.developer_cloud.util.GsonSingleton.createGson(GsonSingleton.java:53)
at com.ibm.watson.developer_cloud.util.GsonSingleton.getGson(GsonSingleton.java:38)
at com.ibm.watson.developer_cloud.concept_expansion.v1.ConceptExpansion.createJob(ConceptExpansion.java:147)
at intercept.notification.notify.MainActivity$PlaceholderFragment$Persona.doInBackground(MainActivity.java:106)
at intercept.notification.notify.MainActivity$PlaceholderFragment$Persona.doInBackground(MainActivity.java:84)
我对此进行了相当多的调试,但不知道如何强制使用 Java 版本的 SimpleDataFormat 而不是 Android 版本。两者之间的差异可以在这里看到: Java(其中包括 Bluemix 服务所需的符号 'X' - http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Android(不包括它)- http://developer.android.com/reference/java/text/SimpleDateFormat.html
问题
我们使用的 'X' 不受 Android 中的 jdk 1.6 支持。
该问题已在 v1.1.1 中修复。
正在更新依赖关系
马文:
<dependency> <groupId>com.ibm.watson.developer_cloud</groupId> <artifactId>java-wrapper</artifactId> <version>1.1.1</version> </dependency>
Gradle:
'com.ibm.watson.developer_cloud:java-wrapper:1.1.1'
- 正在从 github 下载 jar-with-dependencies。