if (File.Exists (Application.persistentDataPath + localUserFileName)) зависает приложение - PullRequest
0 голосов
/ 18 декабря 2018
if (File.Exists(Application.persistentDataPath + localUserFileName))   

зависает приложение
Unity Version 2018.3.0f2 Это работало в версиях до 2018.3

Проблема, похоже, связана с Application.persistentDataPath, поскольку следующая строка также вызывает зависание приложения.

Debug.Log("Application.persistentDataPath " + Application.persistentDataPath);  

Есть ли способ решить эту проблему без понижения Unity?

В консоли не создаются журналы ошибок.Как предложил @ andrew-% c5% 81ukasik, я протестировал следующий код.

try
{
    Debug.Log("Application.persistentDataPath " + Application.persistentDataPath);
}
catch (System.Exception ex)
{
    Debug.LogException(ex);
}

Теперь в консоли есть две ошибки: 1. GetGfxDevice () должен вызываться только из основного потока (эта ошибка относится кна строку в блоке catch) 2. UnityException: get_persistentDataPath может вызываться только из основного потока.Конструкторы и инициализаторы полей будут выполняться из потока загрузки при загрузке сцены.Не используйте эту функцию в конструкторе или инициализаторах поля, вместо этого переместите код инициализации в функцию «Пробуждение» или «Запуск».(эта ошибка относится к строке в блоке try.)

Это не дубликат Загрузка и сохранение изображения в Application.persistentDataPath приводит к зависанию приложения Поскольку проблема с зависанием на предыдущемсвязанные с загрузкой с URL и сохранением в локальный файл.Однако это чисто локальный процесс.

1 Ответ

0 голосов
/ 18 декабря 2018

Поместите этот код в блок try-catch:

try
{
    /* here */
} catch( System.Exception ex )
{
    Debug.LogException(ex);
    //you can add additional code here to handle this exception
    //example: break loop (especially when it's infinite one), stop method execution, etc.
}

Иногда код генерирует исключения, которые не перехватываются единицей.Это происходит, когда код не выполняется, например, в главном потоке.

Также откройте редактор необработанных файлов журнала , там будут любые доказательства ошибок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...