0

我有一个通过 Xcode 在 iPhone 模拟器中运行良好的应用程序。当我尝试在 iPod touch 上运行应用程序时,我收到以下错误;

2012-05-25 19:40:33.014 PracticeOne [602:707] cocos2d: CCTexture2D。无法创建纹理。UIImage 为零 2012-05-25 19:40:33.016 PracticeOne[602:707] cocos2d:无法在 CCTextureCache 中添加图像:Success1.png 2012-05-25 19:40:33.025 PracticeOne[602:707] *断言-[Game addChild:z:] 失败,/IOSDevelopment/PracticeOne/PracticeOne/libs/cocos2d/CCNode.m:407

我有一个 Success1.png 图像,存储在 Resources 文件夹中。

当用户点击提交按钮时,会执行以下逻辑;

//在屏幕上显示成功图形

    CCSprite *goodWord = [CCSprite spriteWithFile:@"Success1.png"];
    [goodWord setPosition:ccp(s.width / 2, s.height / 2) ];
    [self addChild:goodWord z:200];
    id action1 = [CCFadeIn actionWithDuration:1.5];
    id action2 = [CCFadeOut actionWithDuration:1.5];
    [goodWord runAction:action1];
    [goodWord runAction:action2];

因此,我检索了 png 文件,将其定位并将其添加到场景中。我运行动作来淡入淡出图像。它短暂出现然后消失,向用户显示他们成功了。

当我调试设备上运行的代码时,尝试检索 Success1.png 后,goodWord 不包含地址。

有谁知道为什么它可以在模拟器中成功并在一个设备中抛出这个错误?我的资源文件夹中的其他图像在设备上显示良好。

任何提示或建议将不胜感激。如果成功,我将继续寻找解决方案并进行更新。

提前致谢。

4

2 回答 2

0

我不确定这是否是 OS X 和 iOS 之间的错误或行为怪癖,但我有一次非常相似(如果不是完全相同的问题)之前我不得不将另一个项目中的图像用于另一台设备作为iOS 项目的资产基础。

在我的具体情况下,原始图像是 gif 文件,我已将它们转换为 png。我在 Photoshop 中打开了所有文件,然后将每个文件保存为新的 png。有时我忘记更改文件格式,只是将 .gif 扩展名替换为 .png。我不相信 Photoshop 警告过我,所以我有效地保存了带有 png 扩展名的 gif!

奇怪的是,您可以将带有 png 扩展名的这些类型的 gif 加载到 X Code 中并运行它们将在您的模拟器上的应用程序中运行!但是,当您加载应用程序并从那里进行测试时,它们将无法在您的 iOS 设备上运行。

修复它就像正确地重新保存图像一样简单,确保选择正确的格式。

我不确定您的图像来自哪里或您可能使用过哪种类型的编辑器,但我想知道 OS X 是否足够聪明,可以确定图像存储为哪种类型的文件,而不管它的扩展名是什么。然而,iOS 似乎没有这种内置智能。

于 2012-05-26T01:14:41.273 回答
0

该设备对精细名称区分大小写。确保 Xcode 导航器中的文件名在大小写上与资源文件夹中的精细名称相同。此外,“深度清理”您的项目以揭示其他差异选项-> 构建可能是一个好主意。

于 2012-05-26T13:01:56.153 回答