1

我正在开发一个 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

4

1 回答 1

0

问题

我们使用的是 Android 中 jdk 1.6 不支持的“X”。
该问题已在 v1.1.1 中修复。

更新依赖

  1. 马文:

    <dependency> <groupId>com.ibm.watson.developer_cloud</groupId> <artifactId>java-wrapper</artifactId> <version>1.1.1</version> </dependency>

  2. 摇篮:

'com.ibm.watson.developer_cloud:java-wrapper:1.1.1'

  1. 从 github下载jar-with-dependencies 。
于 2015-10-18T16:47:05.160 回答