2015-01-17 106 views
0

正如我在標題中提到的那樣,當我加載存儲在assets/music/music1.mp3中的名爲music1.mp3的音樂歌曲時。 logcat節目Fatal error 11 (SIGSEGV) at 0x000000 (code 11)和應用程序獲得關閉。據我所知,Fatal error 11是由於訪問一個NULL元素或者已經釋放的sth而導致的。按照預期,我記錄了FileUtils::getInstance->getSearchPath(),結果爲assets/music。但是,當我嘗試登錄music1.mp3的路徑getFullPathForFilename時,它僅顯示了assets/music1.mp3,這使我的應用崩潰。任何人都可以解釋爲什麼它不能訪問資產子文件夾(音樂)找到music1.mp3文件?高級我的英語不好:D無法訪問資產子文件夾中的文件

P/s:我的應用程序在iOS中運行完美。

任何幫助,將不勝感激。

感謝您的閱讀。

回答

2

你需要搜索路徑添加到您的FileUtil,如:

FileUtils::getInstance()->addSearchPath("SEARCH_PATH"); 

,我通常用的是簡單地把完整的路徑在您的日常裝載其他的解決方案。這會讓你更好地理解發生了什麼,它也有助於Android和iOS之間的一致性:

CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(
      "music/msc1.mp3", true); 
+0

感謝@Kasra的回覆。當然,我使用上面提到的方法添加了所有搜索路徑,但仍無法找到該文件。如果我把完整的路徑放到文件中,結果也是一樣的。這太奇怪了。 –

+0

您可以複製並粘貼您放置完整地址時使用的完全相同的行嗎? – Kasra

+0

這聽起來很明顯,但無論如何,您需要將音樂複製到「資源」文件夾 - 而不是「資產」文件夾。 「資產」文件夾被cocos2d-x自動管理並與「resources」文件夾同步。如果您將任何內容複製到您的資產文件夾而不是資源文件夾中,則在編譯遊戲時,所有內容都將被覆蓋,並且您將丟失已複製到資產文件夾中的文件。 – Kasra

相關問題