Проблема: java.lang.IllegalStateException: хранилище для [...] уже зарегистрировано при добавлении преобразователей типоAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема: java.lang.IllegalStateException: хранилище для [...] уже зарегистрировано при добавлении преобразователей типо

Сообщение Anonymous »

Обзор.

При работе с Room и KSP (обработка символов Kotlin) для преобразователей типов в проекте Android я столкнулся с повторяющейся проблемой после добавления нового преобразователя типов. Сообщение об ошибке было:

Код: Выделить всё

java.lang.IllegalStateException: Storage for [C:\...\symbolLookups\id-to-file.tab] is already registered

Контекст:

Эта проблема возникла после введения нового преобразователя типов для обработки списка строк () с комнатой. Приложение использует обработку символов Kotlin (KSP) для обработки аннотаций для преобразователей комнат и типов.

Проблема:

Каждый раз, когда я добавлял новый тип конвертер, механизм кэширования KSP вызвал конфликт. Ошибка помешала компиляции проекта. Основная причина, по-видимому, связана с тем, как KSP обрабатывает хранение файлов поиска символов, которые могут не очищаться автоматически при значительных изменениях (например, добавлении преобразователей новых типов).

Решение:< /h4>
Вот как я это решил:
[list]
[*]Очистите проект с помощью команды Сборка -> Очистить. Параметр «Проект» в Android Studio.
[*]Сделайте недействительными кеши и перезапустите среду IDE, выбрав «Файл» -> «Недействительные кеши/перезапуск».< /li>
Перезагрузите компьютер. Удивительно, но этот шаг был необходим после того, как описанные выше действия сами по себе не сработали. После перезагрузки компьютера проект успешно скомпилировался.
[/list]
Почему это происходит?

Похоже, это связано о том, как KSP управляет своими кэшами. При добавлении новых элементов, таких как преобразователи типов, KSP не может автоматически аннулировать некоторые файлы поиска кэшированных символов. Это приводит к конфликту при попытке зарегистрировать новое хранилище для этих символов. Очистка с последующей аннулацией кеша и перезагрузкой системы заставляет систему полностью обновить эти кеши.
Кто-нибудь еще сталкивался с этой проблемой при добавлении преобразователя нового типа в комнату с KSP? Существуют ли какие-либо известные постоянные исправления или профилактические меры, помимо аннулирования кэша и перезагрузки компьютера?
Я был бы признателен за любые идеи или потенциальные решения, особенно если есть более надежный способ предотвратить эту ошибку. Не стесняйтесь поделиться своим опытом решения подобных проблем с кэшем KSP!

Подробнее здесь: https://stackoverflow.com/questions/789 ... registered
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»