Я являюсь частью команды, которая использует NativeScript и angular, и мы продолжаем получать ошибки, которые выглядят следующим образом:
Error: com.tns.NativeScriptException: Attempt to use cleared object reference id=<some-object-id-number>
В результате некоторых исследований мы используем markMode: нет, чтобы ускорить наше приложение. Мы хотим продолжать использовать это, поэтому нам нужно найти источник ошибок. Из документации это происходит от создания собственного объекта, затем оборачивая его в метод JS, так что сборщик мусора удаляет собственный объект в методе, но так как на него все еще ссылаются, выдается ошибка. В документации также указывается, что это, скорее всего, связано с использованием плагинов, которые не адаптированы к маркировке. Режим: нет. Плагин, который, по моему мнению, является причиной этого, является плагином nstudio nativescript-checkbox Поэтому я просмотрел исходный код, чтобы попытаться найти нативные параметры, которые соответствуют критериям, и мои проблемы заключаются в следующем:
- Я не уверен, что я нахожу все нативные объекты.
- Я не знаю, где выпустить их в коде.
- Я не уверен, является ли этот плагин единственным, который вызывает проблемы (мы используем много плагинов и все они являются неотъемлемой частью нашего кода).
- Я изучил нашу кодовую базу и не смог найти ни одного случая, где это может быть проблемой, но я могу ошибаться.
Если кто-нибудь испытал этот маркировочный режим: нет проблем, особенно с плагинами, я хотел бы услышать, как вы справились с этим, и если у вас есть какие-либо советы / предложения в будущем. Вот документация, детализирующая эту проблему: https://docs.nativescript.org/core-concepts/android-runtime/advanced-topics/marking-mode-none
Разработчики NativeScript сказали, что это исправлено в этом исправлении с обновлением, но я не заметил изменений: https://github.com/NativeScript/NativeScript/issues/7125
ОБНОВЛЕНИЕ: Я закомментировал плагин флажка и никаких ошибок, это определенно вызвано плагином