【发布时间】:2013-09-19 07:45:01
【问题描述】:
我正在使用 cocos2d-x 为 Android 开发一个应用程序。我是 cocos2d-x 和 C++ 的新手,而且我在 Windows 上,我遵循了从为 Eclipse 创建 Cocos2d-x 项目模板到将项目导入 Eclipse 并向其添加 c++ 功能等的正当程序......我成功了让我的应用程序在模拟器中运行(目标 API 4.1),它给了我预期的 cocos2d“HelloWorld Splash”。问题是,现在我正在尝试更改我的应用程序背景图像。我在资产目录中添加了一个图像,并更改了“HelloWorldScene.cpp”中创建默认 HelloWorld Sprite 的代码
来自:
CCSprite* pSprite = CCSprite::create("HelloWorld.png");
到:
CCSprite* pSprite = CCSprite::create("background.jpg");
一旦我执行后者,我的模拟器在尝试运行应用程序后崩溃,并且在 logcat 中我收到错误“致命信号 11 (SIGSEGV) at 0x00000000 (code=1)”,但如果我放回默认的 HelloWorld。 png 再次在模拟器中顺利运行。
我使用 cocos2d-2.0-rc2-x-2.0.1 和 android-ndk-r8b。此应用程序仅在 4.1 API 设备模拟器上运行,我无法让它在 2.3.3 和 4.3 上运行,因为它在尝试运行时崩溃。拜托,请帮帮我
【问题讨论】:
-
很明显,您正在尝试从
NULL指针中读取。也许您的CCSprite::create无法加载文件并返回NULL指针,而您没有正确检查。 -
但我在 assets 目录中有 background.jpg 文件。为什么它会返回NULL?请问在代码中我还有什么需要做的吗?