Cocos2d-x v3.17.1 is coming soon!

Cocos2d-x 3.17.1 is a bug fix release and has no additional functionality from v3.17. Some of the fixes are as follows:

- Upgrade libwebsockets
- Simplification and improvement of cmake build scripts
- Strict thread security for `CCFileUtils`
- Lua adds Downloader binding
- Fix button title bugs
- `GetSafeArea`, support on Android platform
- Adjust Android project configuration appropriately
- Fixed several memory leaks, several crash scenarios

Code changes for version 3.17.1, refer to PRs list

Bugs, refer to the closed Issues list

Use the v3 branch, please refer to the readme to update/download dependencies.


Nice work!!!

Could you rebuild Android externals with latest NDK18 before Cocos2d-x 3.17.1 release?
Below ticket is on your Issues list but it is in “Open” state:


@drelaptop what do you think about doing this?

Crash found. Android, device HTC U11
Step to reproduce:

  1. Download latest version from appveyor
  2. Sign CppTests-release-unsigned.apk following steps Sign your app from command line
  3. “Start AutoTest”
    Bug: crash after 1-2 minutes.
    “Start AutoTest” worked few months ago.
    From adb logcat it seems like file ‘button_actived.png’

11-13 20:43:32.063 15307 15343 D cocos2d-x debug info: cocos2d: SpriteFrameCache: Frame ‘button_actived.png’ isn’t found
11-13 20:43:32.063 15307 15343 D cocos2d-x debug info: Assert failed: spriteFrame can’t be nullptr!
11-13 20:43:32.063 15307 15343 E cocos2d-x assert: C:\projects\cocos2d-x\cocos\2d\CCSprite.cpp function:initWithSpriteFrame line:233
11-13 20:43:32.063 15307 15343 D cocos2d-x debug info: Could not allocate Scale9Sprite()
11-13 20:43:32.063 15307 15343 D cocos2d-x debug info: [TestController]Catch an crash event
11-13 20:43:32.063 15307 15343 E libsigchain: exiting due to SIG_DFL handler for signal 11
11-13 20:43:32.097 2962 3110 W InputDispatcher: channel ‘5e340b8 org.cocos2dx.cpp_tests/org.cocos2dx.cpp_tests.AppActivity (server)’ ~ Consumer closed input channel or an error occurred. events=0x9
11-13 20:43:32.098 2962 3110 E InputDispatcher: channel ‘5e340b8 org.cocos2dx.cpp_tests/org.cocos2dx.cpp_tests.AppActivity (server)’ ~ Channel is unrecoverably broken and will be disposed!
11-13 20:43:32.098 2962 3110 D InputDispatcher: Commands locked, dispatchOnceInnerLocked() not be called
11-13 20:43:32.098 2962 3110 I WindowManager: WINDOW DIED Window{5e340b8 u0 org.cocos2dx.cpp_tests/org.cocos2dx.cpp_tests.AppActivity}
11-13 20:43:32.098 2962 3110 W InputDispatcher: Attempted to unregister already unregistered input channel ‘5e340b8 org.cocos2dx.cpp_tests/org.cocos2dx.cpp_tests.AppActivity (server)’

The same for win32. Call stack:

libcocos2d.dll!cocos2d::Sprite::initWithSpriteFrame(cocos2d::SpriteFrame * spriteFrame) Line 233 C++
libcocos2d.dll!cocos2d::Sprite::initWithSpriteFrameName(const std::basic_string<char,std::char_traits,std::allocator > & spriteFrameName) Line 228 C++
libcocos2d.dll!cocos2d::ui::Scale9Sprite::initWithSpriteFrameName(const std::basic_string<char,std::char_traits,std::allocator > & spriteFrameName, const cocos2d::Rect & capInsets) Line 184 C++
libcocos2d.dll!cocos2d::ui::Scale9Sprite::createWithSpriteFrameName(const std::basic_string<char,std::char_traits,std::allocator > & spriteFrameName) Line 121 C++
cpp-tests.exe!DownloaderTest::createDownloadView(const char * name, const std::function<void __cdecl(cocos2d::Ref *)> & callback) Line 80 C++
cpp-tests.exe!DownloaderTest::onEnter() Line 131 C++
libcocos2d.dll!cocos2d::Director::setNextScene() Line 1188 C++
libcocos2d.dll!cocos2d::Director::drawScene() Line 282 C++
libcocos2d.dll!cocos2d::Director::mainLoop() Line 1476 C++
libcocos2d.dll!cocos2d::Application::run() Line 113 C++
cpp-tests.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpCmdLine, int nCmdShow) Line 40 C++

I should just upload this to the Play Store for everyone to download. Or do we really need to do this step now since users can just download when they want from these links?

Speaking for CPP-Test. I just wanted to test the latest github commit on iOS (real iPhone XS) and it also crashed on some tests - manually or auto-test. I don’t believe, that they are always tested and fixed, if they aren’t running.

CPP-Test worked 10 Sep 2018. I checked that for Android and win32 when following pull request was merged:

@drelaptop , any new about this issue?

thanks for share this, I will check the cpp-tests crash issues today.

put it into next milestone

Any issues solved or positive difference to use NDK r18 compile, the older is NDK 16 compile

I think that it is worth to update. Lots of fixes for clang workflow.

Full changelog here:

@mars3142 any support from your side.

I update the NDK by default. For testing purposes…

And currently I have no problems with clang, so I’m fine with an update to the latest stable version. Currently I’m using v19 rc1 and before that v18 without any problems.

record the latest v3 cpp-tests crash issues at

the Travis CI only confirm cpp-tests compile passed, crash issues only be tested before a release, not always.

Below ticket is closed but I still have crash on Android.

Ticket created:
@mars3142 could you check “Start AutoTest” for IPhone/Mac?

@CrazyHappyGame I used branch 3.17.1 for my test. The test project worked very well on the latest iOS and macOS, so I can confirm, that the issue 19168 worked for me. I didn’t tested it on Android yet.

our test team is testing for this, found some issues on Android, we will solve it before released.

Thank you for info. Please let me know when all known issues will be fixed and I can repeat testing.

we almost finished the round 1 test, and some little bugs fix have been merged into 3.17.1 temp branch. so you can use it to test now. @CrazyHappyGame