sberdevices/salute-issues

[SberPortal] Приложение крашит СберПортал при старте

Closed this issue · 7 comments

Где нашелся баг:
в СберПортале пользователя @subnetsRU

Описание проблемы:
приложение «Умный список покупок» крашит портал при старте.

image

Проблема воспроизводится у других пользователей?
не знаю.

Дополнительная информация:
В тестировании работает нормально. В мобильных клиентах (обоих) работает нормально.

Приложение написано с использованием Smartapp API. Вот JSON, который приложение отдаёт на старте:

{
  "uuid": {
    "userChannel": "B2C",
    "sub": "lZEKYx3m+PiTcQM92TgBSpFs9FFDRTS+T5DkGApeoFqV3umJMlu9jP57CjcuQPJxu8EP3Mh1ackSYT+UCsjswIPNv3Ks+8t21AZixlVDwvSJ6sDBisINQ+YAAnsH7rxkySlnFTKb08AgIPC4XkvbnWJ+f3Q/ZA/e8l8hpSQ+I4k=",
    "userId": "d982636c-cd54-4ad9-88fb-46dbd66691ef"
  },
  "sessionId": "9e6a8d6a-584e-3fcb-b2d1-97ba3b1a1c40",
  "payload": {
    "asr_hints": {
      "enable_letters ": false,
      "words": null,
      "eou": 5,
      "nospeechtimeout": 7
    },
    "pronounceText": "Привет! Я могу быстро сохранить для тебя список покупок, который ты надиктуешь. Просто расскажи мне в свободной форме, что хочешь купить.",
    "intent": null,
    "finished": false,
    "items": [
      {
        "bubble": {
          "text": "Привет! Я могу быстро сохранить для тебя список покупок, который ты надиктуешь. Просто расскажи мне в свободной форме, что хочешь купить.",
          "markdown": true
        }
      },
      {
        "card": {
          "items": [
            {
              "top_text": {
                "text": "Помощь",
                "text_color": "secondary",
                "max_lines": 1,
                "typeface": "caption",
                "margins": null
              },
              "bottom_text": {
                "margins": null,
                "text": "Что ты умеешь?",
                "max_lines": 0,
                "typeface": "body3",
                "text_color": "default"
              },
              "actions": [
                {
                  "type": "text",
                  "should_send_to_backend": true,
                  "text": "Что ты умеешь?"
                }
              ],
              "type": "greeting_grid_item",
              "paddings": {
                "left": "6x",
                "right": "6x",
                "bottom": "6x",
                "top": "6x"
              }
            },
            {
              "top_text": {
                "text_color": "secondary",
                "typeface": "caption",
                "margins": null,
                "text": "Пример",
                "max_lines": 1
              },
              "actions": [
                {
                  "text": "Литр молока, хлеб, зелёный лук",
                  "should_send_to_backend": true,
                  "type": "text"
                }
              ],
              "type": "greeting_grid_item",
              "paddings": {
                "right": "6x",
                "left": "6x",
                "top": "6x",
                "bottom": "6x"
              },
              "bottom_text": {
                "typeface": "body3",
                "text_color": "default",
                "max_lines": 0,
                "text": "Литр молока, хлеб, зелёный лук",
                "margins": null
              }
            }
          ],
          "item_width": "small",
          "type": "grid_card",
          "columns": 2
        }
      }
    ],
    "emotion": null,
    "projectName": null,
    "device": {
      "platformVersion": "9",
      "features": {
        "appTypes": [
          "APK",
          "WEB_APP",
          "DIALOG"
        ]
      },
      "additionalInfo": {},
      "surface": "SBERBOX",
      "capabilities": {
        "screen": {
          "available": true
        },
        "mic": {
          "available": true
        },
        "speak": {
          "available": true
        }
      },
      "surfaceVersion": "1.69.35",
      "platformType": "android"
    },
    "auto_listening": true
  },
  "messageName": "ANSWER_TO_USER",
  "messageId": 1615022826368833000
}

Проблема стабильно воспроизводится.

Запускал апп 4-ре раза и все 4-ре портал выпадал в загрузчик.

При этом если выбрать "try again", то портал загружается, появляется рабочий стол и далее опять уходит в ребут и снова экран загрузчика.

Если выбрать "factory reset", то портал загружается, но общаться с ассистентом невозможно. Система слушает, лавашар помигивает, но после того как я замолкаю, просто снова показывает "Скажите: Салют!" и всё.

Проблему работы устройства решает только полный сброс устройства, но если запустить апп, то ....

Сбербокс тоже имеет проблемы с этим апом, но он хотя бы не крашится. На сбербоксе card при запуске не показывается, как и в некоторых местах внутри апа так же. Вероятно это как-то связано.

Исправление будет в версии 1.70.
Сейчас можно явно задать max_lines в карточках, например, так:

`{
  "uuid": {
    "userChannel": "B2C",
    "sub": "lZEKYx3m+PiTcQM92TgBSpFs9FFDRTS+T5DkGApeoFqV3umJMlu9jP57CjcuQPJxu8EP3Mh1ackSYT+UCsjswIPNv3Ks+8t21AZixlVDwvSJ6sDBisINQ+YAAnsH7rxkySlnFTKb08AgIPC4XkvbnWJ+f3Q/ZA/e8l8hpSQ+I4k=",
    "userId": "d982636c-cd54-4ad9-88fb-46dbd66691ef"
  },
  "sessionId": "9e6a8d6a-584e-3fcb-b2d1-97ba3b1a1c40",
  "payload": {
    "asr_hints": {
      "enable_letters ": false,
      "words": null,
      "eou": 5,
      "nospeechtimeout": 7
    },
    "pronounceText": "Привет! Я могу быстро сохранить для тебя список покупок, который ты надиктуешь. Просто расскажи мне в свободной форме, что хочешь купить.",
    "intent": null,
    "finished": false,
    "items": [
      {
        "bubble": {
          "text": "Привет! Я могу быстро сохранить для тебя список покупок, который ты надиктуешь. Просто расскажи мне в свободной форме, что хочешь купить.",
          "markdown": true
        }
      },
      {
        "card": {
          "items": [
            {
              "top_text": {
                "text": "Помощь",
                "text_color": "secondary",
                "max_lines": 1,
                "typeface": "caption",
                "margins": null
              },
              "bottom_text": {
                "margins": null,
                "text": "Что ты умеешь?",
                "max_lines": 2,
                "typeface": "body3",
                "text_color": "default"
              },
              "actions": [
                {
                  "type": "text",
                  "should_send_to_backend": true,
                  "text": "Что ты умеешь?"
                }
              ],
              "type": "greeting_grid_item",
              "paddings": {
                "left": "6x",
                "right": "6x",
                "bottom": "6x",
                "top": "6x"
              }
            },
            {
              "top_text": {
                "text_color": "secondary",
                "typeface": "caption",
                "margins": null,
                "text": "Пример",
                "max_lines": 1
              },
              "actions": [
                {
                  "text": "Литр молока, хлеб, зелёный лук",
                  "should_send_to_backend": true,
                  "type": "text"
                }
              ],
              "type": "greeting_grid_item",
              "paddings": {
                "right": "6x",
                "left": "6x",
                "top": "6x",
                "bottom": "6x"
              },
              "bottom_text": {
                "typeface": "body3",
                "text_color": "default",
                "max_lines": 3,
                "text": "Литр молока, хлеб, зелёный лук",
                "margins": null
              }
            }
          ],
          "item_width": "small",
          "type": "grid_card",
          "columns": 2
        }
      }
    ],
    "emotion": null,
    "projectName": null,
    "device": {
      "platformVersion": "9",
      "features": {
        "appTypes": [
          "APK",
          "WEB_APP",
          "DIALOG"
        ]
      },
      "additionalInfo": {},
      "surface": "SBERBOX",
      "capabilities": {
        "screen": {
          "available": true
        },
        "mic": {
          "available": true
        },
        "speak": {
          "available": true
        }
      },
      "surfaceVersion": "1.69.35",
      "platformType": "android"
    },
    "auto_listening": true
  },
  "messageName": "ANSWER_TO_USER",
  "messageId": 1615022826368833000
}`

@Genenko-Svetlana а если я хочу не ограничивать max_lines (потому что не знаю сколько получится с учётом ширины карточек), я могу например везде передать max_lines = 99 ? это не сломает вёрстку?

Не сломает )

@DenisNP всё получилось? Вопрос решён?

@Genenko-Svetlana да, max_lines = 99 не крашится теперь. Но приложение не разворачивается само при запуске на Портале. Хотя полагаю это другая ошибка.

@DenisNP тогда по этой новой ошибке можно завести новую задачу (с подробностями, скринами, видео).
Данный тикет закрываем.