Вопрос или проблема
После обновления до SDK 52 нажатие кнопки больше не отображает ожидаемый интерфейс. Вместо этого я получаю следующую ошибку:
1.(NOBRIDGE) ОШИБКА Предупреждение: Ошибка: Исключение в HostFunction: Не пробельный символ найден после завершения преобразования: “%”
2.(NOBRIDGE) ОШИБКА Предупреждение: Ошибка: Исключение в HostFunction: Пустая входная строка
эти ошибки имеют одинаковый стек вызовов в ReactFabric.js
Пожалуйста, дайте мне несколько предложений, спасибо!
используйте команду
npx expo install –fix
или используйте
expo-doctor
также попробуйте установить newarchenabled в false, если не работает
Надеюсь, это устранит ошибки, но я не уверен насчет интерфейса (у меня проблема с textinputs и touchableopacity (только с точки зрения интерфейса))
Ответ или решение
После обновления до Expo SDK 52, вы столкнулись с ошибками, связанными с файлом reactFabric-dev.js
, что привело к непредвиденному поведению вашего интерфейса. Давайте разберёмся в возникших ошибках и возможных путях их решения.
Ошибки, которые вы наблюдаете:
- (NOBRIDGE) ERROR: "Warning: Error: Exception in HostFunction: Non-whitespace character found after end of conversion: \"%\""
- (NOBRIDGE) ERROR: "Warning: Error: Exception in HostFunction: Empty input string"
Эти ошибки могут быть связаны с несколькими факторами. Обратите внимание, что проблемы могут возникать из-за изменений в SDK или конфликта с библиотеками.
Рекомендации по устранению ошибок:
-
Проверьте изменения в SDK: Обновление до новой версии может повлечь за собой изменения в API и функциях. Ознакомьтесь с журналом изменений Expo SDK 52 для уточнения, какие именно изменения были внесены и как они могут влиять на ваш проект.
-
Используйте
npx expo install --fix
: Эта команда автоматически установит все необходимые зависимости, что может помочь устранить конфликты между версиями библиотек. -
Следуйте рекомендациям
expo-doctor
: Запуск этой команды может выявить проблемы с конфигурацией вашего проекта. Она предложит пути их решения. -
Проверьте настройки
newarchenabled
: Если после вышеуказанных действий ошибки сохраняются, попробуйте установить параметрnewarchenabled
вfalse
. Это может помочь вернуть старую архитектуру и решить проблемы с интерфейсом. -
Проверьте компоненты пользовательского интерфейса: Ваша проблема также может быть связана с использованием компонентов, таких как
TextInput
иTouchableOpacity
. Убедитесь, что вы используете правильно настроенные версии этих компонентов и что ваш код соответствует актуальным рекомендациям. -
Обратите внимание на строковые значения: Ошибки, упомянутые вами, часто возникают из-за некорректных или пустых строк. Проверьте все строки, передаваемые в функционал вашего приложения, чтобы убедиться, что они не содержат лишних символов или пустых значений.
-
Логи и отладка: Используйте инструменты отладки, такие как React DevTools, чтобы отслеживать проблемы в вашем компонентном дереве и находить источники ошибок.
-
Сообщество и форумы: Если описанные выше шаги не помогли, рассмотрите возможность обращения за помощью к сообществу Expo. Форумы, такие как GitHub и Stack Overflow, часто содержат решения для распространённых проблем.
Следуя этим рекомендациям, вы должны быть в состоянии устранить возникшие ошибки после обновления до Expo SDK 52. Если проблемы Persistent, рассмотрите возможность создания нового проекта и импорта вашего кода по частям, чтобы выявить причину возникновения ошибок. Удачи!