if (File.Exists(Application.persistentDataPath + localUserFileName))
挂起应用程序
Unity版本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只能从主线程调用。 加载场景时,将从加载线程执行构造函数和字段初始化程序。 不要在构造函数或字段初始化程序中使用此函数,而应将初始化代码移至Awake或Start函数。 (此错误是指try块中的行。)
这不是Download and save image into Application.persistentDataPath hangs the app的副本,因为前一个的悬挂问题与从url下载并保存到本地文件有关。但是,这是一个纯粹的本地过程。
答案 0 :(得分:0)
将此代码放在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.
}
有时,代码会引发未被统一捕获的异常。例如,当代码不在主线程上执行时,就会发生这种情况。
也打开editor raw log files,任何有错误迹象的地方都会出现