Ошибка службы BlueMix в приложении Android - "Неизвестный символ шаблона" 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 (который включает символ "X" в соответствии с требованиями службы Bluemix - http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Android (который не включает его) - http://developer.android.com/reference/java/text/SimpleDateFormat.html

1 ответ

Решение

Эта проблема

Мы использовали 'X', который не поддерживается jdk 1.6 в Android.
Эта проблема была исправлена ​​в v1.1.1.

Обновление Зависимости

  1. Maven:

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

  2. Gradle:

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

  1. Загрузка jar-с-зависимостями из github.
Другие вопросы по тегам