【问题标题】:SIGSEGV in Android wrapper for libspotify用于 libspotify 的 Android 包装器中的 SIGSEGV
【发布时间】:2013-11-26 12:50:43
【问题描述】:

我使用Psyonspotify 代码作为将 libspotify 集成到我的应用程序的框架。我删除了很多代码,因为我的应用程序只需要查询曲目和创建播放列表,但我保留了初始化和运行循环代码。

我正在使用 libspotify 12.1.51。我正在运行 Android 4.2.2 的 HTC One 上进行测试。

库运行良好,我可以完全按照我的意愿登录、查询播放列表、查询曲目、创建播放列表并将曲目添加到播放列表。问题是应用程序会随机使用 SIGSEGV 退出。我无法确定它发生的确切位置,但它肯定会(偶尔)在调用sp_session_process_events 时发生。正如在单独的 post 中所建议的那样,我通过检查连接状态 (sp_session_connectionstate) 来保护某些呼叫。

在尝试找到解决方案时,我在 GitHub 上遇到了 cocoalibspotify 的 issue-78,最后一条评论(截至今天)显示为:

我在一个普通的 libspotify-12.1.51 Mac 应用程序中遇到了非常相似的崩溃。当 wifi 掉线时,在 session_process_events 之后的 sp_error_message 中崩溃。

我知道我办公室的 wi-fi 连接非常不稳定,而且 3G 信号也很弱,Spotify 的任何人都可以评论这是否是我遇到困难的原因吗?如果是,有什么方法可以防止它,还是我只需要等待库的新版本?

【问题讨论】:

    标签: android spotify libspotify


    【解决方案1】:

    过去,在 3G/WiFi 之间切换一直是 libspotify 问题的一个已知来源。可能是 libspotify 本身发生了崩溃,我已向维护 libspotify 的内部小组发送了一封邮件,以 ping 他们以获取更多信息(我自己在 Spotify 工作,但不在 libspotify 团队中)。

    如果崩溃来自 libspotify,则您无能为力,最好的方法是在 Android 服务中抽象 libspotify(我假设您已经在这样做),然后从 UI 重新启动服务APK 如果您发现它崩溃了。这可能会花费您几秒钟的等待时间,但总比整个应用程序陷入火海要好。

    编辑:有一个新的Spotify SDK for Android,它取代了libspotify,并且更容易开发。您应该将所有 libspotify 项目迁移到新的 SDK。

    【讨论】:

    • 谢谢尼克。听听内部小组怎么说会很有趣。我在服务中运行,所以崩溃不是致命的,但它可以让我的 Spotify 帐户处于短暂状态。
    • 刚刚从 libspotify 人员那里得到了一个更新,看起来很长一段时间内没有另一个 libspotify 更新计划。 :( 所以如果有错误,你需要在你的服务中处理它。
    • @JohnMark13 新的 SDK 出来了!有关详细信息,请参阅我的编辑。
    猜你喜欢
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2023-04-08
    • 2014-09-14
    • 2016-04-11
    相关资源
    最近更新 更多