Разбор JSON в родном Tizen - PullRequest
       12

Разбор JSON в родном Tizen

0 голосов
/ 30 сентября 2018

У меня есть проект Native C, в котором мне нужно разобрать Json.Согласно тому, что я нашел в документации Tizen, в SDK включен парсер json-glibc.Поэтому я попытался использовать это.Вот минимальная программа, которая создает парсер и ничего более.

#include <json-glib.h>
main(int argc, char *argv[])
{
   JsonParser* jsonParser = NULL;
   GError *error = NULL;
   jsonParser = json_parser_new();

   if(jsonParser == NULL) {
       fputs("failed to create parser", stderr);
    exit(7);
   }
  return 0;
}

В эмуляторе Tizen 3.0 это работает нормально.Как только я пробую его в эмуляторе 2.3.2 или на оборудовании 2.3.2, происходит сбой.Мс кажется странным, что такая вещь будет зависеть от аппаратного / встроенного программного обеспечения.Кто-нибудь знает, есть ли что-то, что я должен сделать, чтобы я мог создать парсер на любой версии аппаратного обеспечения?

Обновление 10 年 6 月 2018 100

Iдумаю, что это ошибка эмулятора 2.3.x для более поздних установок.Это всего лишь гипотеза, поскольку самое большее, что я могу сделать, - это попробовать новую установку на свежих операционных системах.Моя единственная другая гипотеза состоит в том, что есть некоторый компонент, который необходим для работы эмулятора 2.3.x, который отсутствует и не задокументирован как требование.

+-----------------------------------+------+--------+--------------------------+
|            OS Version             | Tizen|Studio  |          Result          |
+-----------------------------------+------+--------+--------------------------+
| Ubuntu 16 LTS Clean Install       | 2.3  |    2.4 | json_parser_new()== NULL |
| Ubuntu 16 LTS Clean Install       | 2.3  |    2.5 | json_parser_new()== NULL |
| Ubuntu 18 LTS Clean Install       | 2.3  |    2.4 | json_parser_new()== NULL |
| Ubuntu 18 LTS Clean Install       | 2.3  |    2.5 | json_parser_new()== NULL |
| Mac OS X High Siera Clean Install | 2.3  |    2.5 | json_parser_new()== NULL |
| Mac OS X Movaje Clean Install     | 2.3  |    2.5 | json_parser_new()== NULL |
| Windows 10 Creator's Edition      | 2.3  |    2.5 | json_parser_new()== NULL |
| Windows 10 Creator's Edition      | 2.3  |    2.4 | json_parser_new()== NULL |
| Ubuntu 16 LTS Clean Install       | 3.0  |    2.4 | success                  |
| Ubuntu 16 LTS Clean Install       | 3.0  |    2.5 | success                  |
| Ubuntu 18 LTS Clean Install       | 3.0  |    2.4 | success                  |
| Ubuntu 18 LTS Clean Install       | 3.0  |    2.5 | success                  |
| Mac OS X High Siera Clean Install | 3.0  |    2.5 | success                  |
| Mac OS X Movaje Clean Install     | 3.0  |    2.5 | success                  |
| Windows 10 Creator's Edition      | 3.0  |    2.5 | success                  |
| Windows 10 Creator's Edition      | 3.0  |    2.4 | success                  |
+-----------------------------------+---------------+--------------------------+

Из этих результатов можно подумать, что Tizen 2.3 не поддерживается.Но, похоже, люди, которые когда-то устанавливали Tizen Studio, могут успешно выполнить тот же код.

1 Ответ

0 голосов
/ 11 октября 2018

введите описание ссылки здесь Я получил ответ на свой вопрос на форумах разработчиков Tizen.

Короче говоря, Gear S3 + и Gear S2 используют разные версии GLIB.На используемом на Gear S2 glib_init () не вызывается, первые попытки создания объектов потерпят неудачу.

Следующее необходимо добавить перед использованием любой библиотеки glib, чтобы избежать этой проблемы.

#if !GLIB_CHECK_VERSION(2, 35, 0)
g_type_init();
#endif
...