我正在为原生libspotify.so(用于android的spotify库)编写一个包装器。当呼叫sp_session_started_create:
A/libc(26182): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 26182
I/DEBUG(34): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG(34): Build fingerprint: 'generic/sdk/generic:4.1.1/JRO03E/403059:eng/test-keys'
I/DEBUG(34): pid: 26182, tid: 26182, name: UNKNOWN
I/DEBUG(34): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
...
I/DEBUG(34): backtrace:
I/DEBUG(34): #00 pc 0011fc40 /data/data/.../lib/libspotify.so
I/DEBUG(34): #01 pc 000e1e58 /data/data/.../lib/libspotify.so
...
D/Zygote(37): Process 26182 terminated by signal (11)
当我调用sp_search_create或sp_session_playlistContainer时也会遇到同样的问题。
这是tracefile的内容(我删除了一些重复的sp_session_process_事件):
libspotify trace from 12.1.51.g86c92b43 Release Android-arm
> sp_session_process_events(0x200f40 0xbeba10cc) on 0xafd4a828
< sp_session_process_events() = 300447
< sp_session_create() = 0
> sp_session_connectionstate(0x200f40) on 0xafd4a828
< sp_session_connectionstate() = 0
> sp_session_remembered_user(0x200f40 0xbeba12a4 256) on 0xafd4a828
< sp_session_remembered_user() = 21
> sp_session_relogin(0x200f40) on 0xafd4a828
< sp_session_relogin() = 0
> sp_session_connectionstate(0x200f40) on 0xafd4a828
< sp_session_connectionstate() = 1
> sp_session_starred_create(0x200f40) on 0xafd4a828
> sp_session_process_events(0x200f40 0xbeba0e9c) on 0xafd4a828
< sp_session_process_events() = 693
> sp_session_process_events(0x200f40 0xbeba0e7c) on 0xafd4a828
< sp_session_process_events() = 692
我为应用程序在sp_session_started_create中崩溃的调试跟踪投保。
有人收到这些错误吗?我怎样才能避免它们?
最佳答案
我怀疑这是libspotify本身的一个问题,希望能在下一个版本的库中解决(免责声明:我在spotify工作)。我不能评论这个版本什么时候发布。所以抓紧点!
不过,我建议您检查传递给sp_session_starred_create()
的会话对象,即通过调用sp_session_connectionstate()
来确保一切正常。