簡體   English   中英

在資源文件夾的主捆綁包中找不到紋理圖集文件

[英]texture atlas file not found in main bundle in resources folder

我遇到一個問題,即我的Resource目錄中的文件未被識別為位於Main Bundle中。

我正在使用texturePacker使用pvr文件格式創建紋理圖集。 texturePacker的輸出產生兩個文件xxx_iPhone-hd.pvr.ccz和xxx_iPhone-hd.plist。 這兩個文件存儲在我的cocos2d項目的Resource目錄中。 將文件存儲在Resource文件夾中之后,我轉到Resource文件夾,然后右鍵單擊“將文件添加到“ myProject””(不選中將項目復制到目標框中)。

當我的cocos2d項目運行並嘗試加載此文件時,絕對路徑對於Main Bundle是未知的。 具體來說,我的代碼執行以下代碼行:

backgroundBgNode = [CCSpriteBatchNode batchNodeWithFile:@"StoreMenuBackground_iPhone.pvr.ccz"];

cocos2d代碼知道該設備具有視網膜顯示,並修改了文件名以創建relPath“ StoreMenuBackground_iPhone-hd.pvr.ccz”。 然后,它嘗試執行以下操作:

NSString *imageDirectory = [relPath stringByDeletingLastPathComponent]; 
fullpath = [[NSBundle mainBundle] pathForResource:file 
                                           ofType:nil 
                                      inDirectory:imageDirectory];

這導致完整路徑為零。 我以前通過上述過程創建了另一個xxx_iPhone5-hd.pvr.ccz文件,並且以上代碼成功返回了完整路徑。 我已經非常仔細地檢查並重新檢查了拼寫,沒有發現任何問題。 我還嘗試過刪除並重新添加該項目的“構建階段”的“復制捆綁資源”下的文件。 有什么辦法可以迫使mainBundle查找該文件?

您應該驗證該文件實際上在捆綁。

您可以通過右鍵單擊構建的包(在項目的DerivedData文件夾中)並選擇“顯示包內容”來執行此操作。 如果您不知道如何找到已構建的產品,請執行針對設備的存檔構建(存檔構建不適用於模擬器)。 在打開的管理器窗口中,右鍵單擊該應用程序,然后選擇“在Finder中顯示”,這將帶您進入xcarchive。 在xcarchive上運行“顯示軟件包內容”,並導航到/ Products / Applications並在分發包中執行另一個“顯示軟件包內容”。

如果文件在那里,但是在子文件夾中(而不是在包的根目錄中),則您已經在Xcode中創建了一個文件夾引用,由藍色文件夾圖標表示。 刪除並重新添加,這次取消選中“添加文件”對話框中的“為...創建文件夾引用”復選框。

如果文件存在,請復制其文件名並將其粘貼回代碼中。 即使您仔細檢查,大小寫差異有時也難以捉摸且難以察覺。

拼命的措施。 在finder中復制側面的文件,即不在項目目錄結構中。 將新復制的文件重命名為簡單的名稱,例如a-hd.pvr.ccz和a.plist(希望您的項目中沒有a-hd.pvr.ccz;))。

編輯a-hd.plist以確保最后一部分指向正確的文件名。 將它們從Finder拖到xCode資源文件夾中,選擇復制文件。 確保更改代碼中的名稱。 從項目中刪除以前的文件。 深層清理項目。 從設備中刪除該應用。 跑。 如果可行,請重復相同的步驟,將名稱恢復為您喜歡的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM