win32到android,missingfile導致的閃退

如有錯誤,請聯繫我更正,以免誤導他人!)
   今天,break把一個使用cocos2dx在win32下開發的項目編譯成android進行調試時碰到閃退的問題。在win32下運行沒有問題,在android上運行卻出現閃退的情況。通過把項目導入eclipse進行debug,看到錯誤如下:
    機智的小夥伴肯定跟break一樣,第一時間關注最下面的紅色文字提示的錯誤信息。紅色的文字顯示的意思是出現的“內存泄漏”。看到這,break馬上回去檢查C++代碼中所有的內存操作。但是看了又看查了又查,發現並沒有問題。break就開始懷疑人生懷疑理想了(PS:尼瑪!寫了這麼久C++,內存泄漏還看不出來)。
    再看上面圖片中用紅色圈圈圈出來的“missing file”。這就是break後來發現的問題所在了。在android上運行時找不到break的項目中的紋理圖片和字體文件,進而導致內存泄漏。
    利用cocos2dx進行開發時,我們的資源文件一般都會放在Resource文件夾下,有時我們會在Resource文件夾下創建子目錄(break在Resource下創建了兩個子目錄,分別存放字體和紋理)。當我們用絕對路徑的方式去訪問資源時不會出現上面這種問題。但是,爲求簡單,我們可能會用"Resource子目錄/文件名"的方式代替絕對路徑去訪問資源文件,利用這種方式訪問的話涉及到coco2dx的搜索路徑的問題。
    在win32下(ios和win32下情況相同),利用上面的方式去訪問資源會自動搜索Resource下的子目錄。在android上則不會,我們要在適當的地方添加訪問問件時的搜索路徑(添加方法: FileUtils::getInstance()->addSearchPath("目錄名/");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章