sp_会话_在win32 x86的libspotify.dll 12.1.51中创建崩溃

sp_会话_在win32 x86的libspotify.dll 12.1.51中创建崩溃,spotify,libspotify,Spotify,Libspotify,对于某些用户,libspotify在调用sp_session_create时崩溃 所有配置参数均已设置,但代理设置为空 崩溃发生在libspotify+0xdc7c0 我有可用的迷你转储。我发现这是一个权限问题。如果用户没有创建和/或修改传递给sp_会话_create的设置和缓存目录的权限,它将有助于崩溃。我认为一个没有崩溃的有用的错误代码会为我节省很多时间 解决方案是确保设置和缓存目录不存在且当前用户可以写入时,可以创建它们。这可以通过直接修改目录权限或将这些目录的位置更改为其他位置(例如用户

对于某些用户,libspotify在调用sp_session_create时崩溃

所有配置参数均已设置,但代理设置为空

崩溃发生在libspotify+0xdc7c0


我有可用的迷你转储。

我发现这是一个权限问题。如果用户没有创建和/或修改传递给sp_会话_create的设置和缓存目录的权限,它将有助于崩溃。我认为一个没有崩溃的有用的错误代码会为我节省很多时间

解决方案是确保设置和缓存目录不存在且当前用户可以写入时,可以创建它们。这可以通过直接修改目录权限或将这些目录的位置更改为其他位置(例如用户的AppData目录)来实现

我应该提到的是,我使用相同的目录来处理这两个问题,以防还不太明显,而且我也没有费心去找出导致崩溃的原因

无论如何,在Windows 8上,当一个程序安装在program Files目录下,并且我的设置/缓存是一个相对路径时,这是一个问题。默认情况下,用户没有足够的权限


希望这能有所帮助。

我在Windows 8上体验到了这一点。在较旧的Windows版本上运行时不会发生这种情况。我已经设置了缓存目录以及用户AppData目录的所有其他路径。您认为AppData目录中也会出现权限问题吗?如果您能够自己复制崩溃,您将能够进行实验。这为我解决了这个问题,是的,我最终在AppData目录中创建了一些东西。@JBL只是一个想法。。。是否在AppData中指定自己的目录?它是否存在,或者您希望libspotify创建它?如果缓存目录不存在,sp_session_create将创建该目录,但设置目录必须已经存在。在这两种情况下,目录都必须是可写的。为了防止权限发生变化,我首先触摸了缓存/设置目录中的一个文件。有趣的是,有一个错误代码SP_error_API_INITIALIZATION_未能指示某些错误,但函数崩溃而不是返回它。我自己无法再现崩溃,但我添加了一个检查以防止libspotify的初始化如果权限不正确,libspotify在我的应用程序中是可选的。到目前为止没有更多的坠机报告。谢谢你的帮助!