cocos2dx 在android平台開啟檔案問題

2021-09-08 13:15:42 字數 1015 閱讀 4435

在網上查到資料能夠通過呼叫cocos2dx裡的getfiledata() 這個函式來讀取檔案內容,getfiledata通過檢測不同的平台。呼叫不同的介面的來開啟和讀取檔案,在ios和windows上依舊沒問題,可在android上呼叫讀取檔案時還是打不開檔案。試了非常多方法都不能夠。找公司還有一同事來幫忙檢視。將路徑改動後問題解決。

string relativepath = "scripts/test.pb";    // this is ok

string relativepath = "./scripts/test.pb"; // this can not open the file"

當時大家也不知道為啥這樣能解決。當時想可能是linux不支援這種路徑。回家後在linux實驗,就算我加幾個」./「都不影響開啟資料夾。檢視了cocos2d-x 底層,發現android部分是呼叫的ndk裡的aassetmanager_open方法,僅僅能看到標頭檔案看不到原始碼。然後在google上搜尋了關於這個函式的相關資訊,也沒啥收穫,就在

stackoverflow

提問。果然有大神回答,而且引用了github上關於這部分的原始碼。看了原始碼才想明確。原來不是去通過這個路徑開啟檔案。而是去乙個檔案管理器查詢,我的檔案路徑裡有「./「,和原路徑去比較。自然是找不到,到此這個疑問消除了。

這次事情啟演示樣例如以下:

1、開源的優點。在遇到問題的時候僅僅須要看下原始碼就能夠了,相對閉源的東西,遇到問題僅僅能去檢視文件。假設文件寫得不清楚。我覺得這種庫最好不要用。一旦遇到問題欲哭無淚。

2、有時在解決這個問題的時候不要太逞強,技術人員都覺得沒有解決不了的問題,但有時確實會發生:「不識廬山真面目,僅僅緣身在此山中」,自己把自己繞進去,找個局外人或許一下子就發現了。

3、在學習計算機過程。一點一滴慢慢積累,打好基礎,不要求快和新。在真正遇到問題的時候,還的看經驗和基礎。

4、不管是書上還是名人說的不一定對。僅僅有通過計算機檢驗的東西。才是正確的。

參考:1、

github上關於這部分的原始碼

將cocos2d x專案移植到android

1.準備ndk 最好用ndk 8,ndk 9可能報如下圖的錯 cygwin 2.編輯cocos2d x目錄 cocos2d x的安裝目錄 下的 3.建立android工程 1 執行cocos2d x目錄下的create android project.bat 2 然後首先輸入包名和專案名 3 輸入支...

SneakInput在cocos2d x下的示例

看了很多教程和文件,無論2d還是2d x都推薦使用開源的sneakinput作為其觸屏的手柄元件。我的環境為vs2010 cocos2d 1.0.1 x 0.12.0 經過自己的試驗,發現在我的環境下並不需要修改sneakinput的原始碼,將原始碼解壓後,放在自己的專案裡就可以正常使用。sneak...

在windows下配置cocos2dx

然後使用vs開啟d cocos2d 2.0 x 2.0.3對應的工程檔案,我使用的是vs2010,則開啟的是cocos2d win32.vc2010.sln檔案。開啟後vs資源管理器如圖 接著執行編譯,編譯過程中有可能會出現類似 winnt.h 290 error c2146 的錯誤,vs自帶了多個...