if (File.Exists(Application.persistentDataPath +

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会挂起应用程序因为上一个的挂起问题与从url下载并保存到本地文件有关。然而,这是一个纯粹的本地过程。


ITMISS
浏览 239回答 1
1回答

HUH函数

将此代码放在 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.}有时代码会抛出统一未捕获的异常。例如,当代码不在主线程上执行时,就会发生这种情况。同时打开编辑器原始日志文件,任何错误的证据都会在那里
打开App,查看更多内容
随时随地看视频慕课网APP