2014-02-22 70 views
1

我正在做一個需要Android中的Spotify的應用程序。但是,當我運行libSpotify「sp_session_create」我得到一個SIGSEGV。我使用的libSpotify的版本是v12.1.51 BETA - Android的ARMlibSpotify在Android中崩潰

sp_error initialise(const char * asKey, 
        const char * asFolder, 
        const char * asUserAgent, 
        bool isPlaylistCompressed, 
        bool isMetadataOnPlaylist, 
        bool isPlaylistInitialUnload) 
{ 
    sp_session_callbacks asCallbacks; 
    memset(&asCallbacks, 0, sizeof(asCallbacks)); 

    asCallbacks.logged_in     = Callback::onSessionLogin; 
    asCallbacks.log_message     = Callback::onSessionLog; 

    sp_session_config asConfiguration; 
    memset(&asConfiguration, 0, sizeof(asConfiguration)); 

    std::string asDirectory = asFolder; 
    auto asDirectoryCache = asDirectory + "/cache"; 
    auto asDirectorySetting = asDirectory + "/setting"; 

    const auto asApplicationKey = "Key goes here..."; 

    asConfiguration.api_version      = SPOTIFY_API_VERSION; 
    asConfiguration.application_key     = asApplicationKey; 
    asConfiguration.application_key_size    = sizeof(asApplicationKey); 
    asConfiguration.cache_location     = asDirectoryCache.c_str(); 
    asConfiguration.settings_location    = asDirectorySetting.c_str(); 
    asConfiguration.user_agent      = asUserAgent; 
    asConfiguration.compress_playlists    = isPlaylistCompressed; 
    asConfiguration.dont_save_metadata_for_playlists = isMetadataOnPlaylist; 
    asConfiguration.initially_unload_playlists  = isPlaylistInitialUnload; 
    asConfiguration.userdata       = this; 
    asConfiguration.callbacks      = &asCallbacks; 

    sp_error asError = sp_session_create(&asConfiguration, &_asSession); 

    __android_log_print(ANDROID_LOG_VERBOSE, LIBRARY_NAME, "PASSED"); 

    return asError; 
} 

回答

0

崩潰是由於緩存文件夾。

0

編輯Spotify's new Android SDK發佈!您應該強烈考慮將您的項目移至新的SDK,因爲libspotify現已棄用於該平臺。

+0

您好!感謝一段時間後的反應,我能夠修復它,現在不再崩潰:D,但是對於Android來說,libSpotify是一個痛處(現在我已經切換到WebAPI的元數據和libSpotify對於脫機模式的東西) –

+0

@AgustinAlvarez新的SDK出來了,請參閱我編輯的評論。 –

+0

是否支持新的SDK離線播放? (爲什麼我使用libSpotify的主要原因 –