SIGSEGV from using CCTMXTiledMap on Android

Hi,

I was following a simple example of using CCTMXTiledMap from http://www.raywenderlich.com/1163/how-to-make-a-tile-based-game-with-cocos2d.

It works fine on iOS but when I run it in Android, I get the following error.

09-20 23:15:34.581: A/libc(27075): Fatal signal 11 (SIGSEGV) at 0x00000048 (code=1), thread 27094 (Thread-17319)

Here is the ndk-stack coredump:

* Crash dump:*
Build fingerprint: ‘google/yakju/maguro:4.1.1/JRO03C/398337:user/release-keys’
pid: 27075, tid: 27094, name: Thread-17319 >>> ca.brianpark.example <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000048
Stack frame #00 pc 00149bd4 /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCTexture2D::hasPremultipliedAlpha()+7): Routine hasPremultipliedAlpha in /Users/brianpark/workspace/cocos2d-x/AndroidTest/proj.android/…/…/cocos2dx/textures/CCTexture2D.cpp:172
Stack frame #01 pc 0013c2d1 /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCSpriteBatchNode::updateBlendFunc()+36): Routine updateBlendFunc in /Users/brianpark/workspace/cocos2d-x/AndroidTest/proj.android/…/…/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp:671
Stack frame #02 pc 0013a9ff /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCSpriteBatchNode::initWithTexture(cocos2d::CCTexture2D*, unsigned int)+94): Routine initWithTexture in /Users/brianpark/workspace/cocos2d-x/AndroidTest/proj.android/…/…/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp:96
Stack frame #03 pc 00152b87 /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCTMXLayer::initWithTilesetInfo(cocos2d::CCTMXTilesetInfo**, cocos2d::CCTMXLayerInfo**, cocos2d::CCTMXMapInfo*)+134): Routine initWithTilesetInfo in /Users/brianpark/workspace/cocos2d-x/AndroidTest/proj.android/…/…/cocos2dx/tilemap_parallax_nodes/CCTMXLayer.cpp:71
Stack frame #04 pc 00152ae3 /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCTMXLayer::create(cocos2d::CCTMXTilesetInfo**, cocos2d::CCTMXLayerInfo**, cocos2d::CCTMXMapInfo*)+42): Routine create in /Users/brianpark/workspace/cocos2d-x/AndroidTest/proj.android/…/…/cocos2dx/tilemap_parallax_nodes/CCTMXLayer.cpp:51
Stack frame #05 pc 00156283 /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCTMXTiledMap::parseLayer(cocos2d::CCTMXLayerInfo**, cocos2d::CCTMXMapInfo**)+42): Routine parseLayer in /Users/brianpark/workspace/cocos2d-x/AndroidTest/proj.android/…/…/cocos2dx/tilemap_parallax_nodes/CCTMXTiledMap.cpp:142
Stack frame #06 pc 001565ff /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCTMXTiledMap::buildWithMapInfo(cocos2d::CCTMXMapInfo*)+462): Routine buildWithMapInfo in /Users/brianpark/workspace/cocos2d-x/AndroidTest/proj.android/…/…/cocos2dx/tilemap_parallax_nodes/CCTMXTiledMap.cpp:226
Stack frame #07 pc 00155e39 /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCTMXTiledMap::initWithTMXFile(char const*)+200): Routine initWithTMXFile in (null):0
Stack frame #08 pc 000c483f /data/data/ca.brianpark.example/lib/libgame.so (HelloWorld::init()+82): Routine init in jni/…/…/Classes/HelloWorldScene.cpp:34
Stack frame #09 pc 000c4689 /data/data/ca.brianpark.example/lib/libgame.so (HelloWorld::create()+64): Routine create in (null):0
Stack frame #10 pc 000c47b1 /data/data/ca.brianpark.example/lib/libgame.so (HelloWorld::scene()+12): Routine scene in jni/…/…/Classes/HelloWorldScene.cpp:13
Stack frame #11 pc 000c4237 /data/data/ca.brianpark.example/lib/libgame.so (AppDelegate::applicationDidFinishLaunching()+62): Routine applicationDidFinishLaunching in jni/…/…/Classes/AppDelegate.cpp:41
Stack frame #12 pc 0012a203 /data/data/ca.brianpark.example/lib/libgame.so (cocos2d::CCApplication::run()+18): Routine run in /Users/brianpark/workspace/cocos2d-x/AndroidTest/proj.android/…/…/cocos2dx/platform/android/CCApplication.cpp:33
Stack frame #13 pc 000c3ea9 /data/data/ca.brianpark.example/lib/libgame.so (Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit+108): Routine Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit in jni/hellocpp/main.cpp:31
Stack frame #14 pc 0001de30 /system/lib/libdvm.so (dvmPlatformInvoke+112)
Stack frame #15 pc 0004d083 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const**, JValue**, Method const**, Thread**)+394)
Stack frame #16 pc 0004f19f /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const**, JValue**, Method const**, Thread**)+174)
Stack frame #17 pc 000272a4 /system/lib/libdvm.so
Stack frame #18 pc 000fedd8

Does anybody know what might have gone wrong?

Thanks in advance.

Hi,
I had the same problem and I’ve solved it moving tmx and png files of my tile map in a subfolder of Resources (Resources/TileMaps). Now I load the tilemap in this way:

  CCTMXTiledMap *tiledMap = CCTMXTiledMap::create("TileMaps/tilemap.tmx");

Giannandrea

the problem could be the image file of tileset is not in referenced correctly in the same folder.
eg.: tilemap.tmx use tileset.png and they are in the same directory but when you created the tilemap.tmx you selected tileset.png where it’s not the same directory