We are happy to announce the release of Cocos2d-x v3.12!
This release brings bug fixes and API maintenance, as well as:
fixed Android performance issues
add experimental VR support
add Tizen support
Web engine performance improved in WebGL mode
support obb extension on Android
Read the full release notes .
Download it today!
5 Likes
Hi,
Thank you great news!
Could you add information about recommended android sdk/ndk versions?
Is v3.12 works with latest android-ndk-r12b released June 2016?
Regards,
CHP
I have first issue:
“cocos gen-libs -p android” - fails
My configuration: sdk: android-19, ndk: android-ndk-r10c
Also there are very suspicious two things in this log:
“Building mode: debug” - it should be release
“NDK_TOOLCHAIN_VERSION=clang” and “gnu-libstdc++/4.8/include\bits/unordered_map.h” - gnu-libstdc++ with clang my not work well …
Below full log:
running: ‘g:\j\A\external\cocos2d-x\tools/cocos2d-console/bin\cocos.bat compile -s g:\j\A\external\cocos2d-x\tools/simulator -p android --ndk-mode release --app-abi armeabi’
Building mode: debug
Using Eclipse project : g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android
Android platform not specified, searching a default one…
running: ‘“g:\j\A\repos\…\3rdparty\android-sdk_r24.0.1\tools\android” update project -t android-19 -p g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android’
Updated project.properties
Updated local.properties
Updated file g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android\proguard-project.txt
Android platform not specified, searching a default one…
running: ‘“g:\j\A\repos\…\3rdparty\android-sdk_r24.0.1\tools\android” update lib-project -p g:\j\A\external\cocos2d-x\cocos\platform\android\java -t android-19’
Updated project.properties
Updated local.properties
Updated file g:\j\A\external\cocos2d-x\cocos\platform\android\java\proguard-project.txt
Building native…
NDK build mode: release
running: ‘“g:\j\A\repos\…\3rdparty\android-ndk-r10c\ndk-build” -C g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android -j8 APP_ABI=“armeabi” NDK_MODULE_PATH=g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android…/…/…/…/…/;g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android…/…/…/…/…/cocos/;g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android…/…/…/…/…/external;g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android…/…/…/…/…/cocos/scripting NDK_TOOLCHAIN_VERSION=clang’
Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 9 in ./AndroidManifest.xml
Android NDK: WARNING: Unsupported source file extensions in g:\j\A\external\cocos2d-x\tools\simulator\frameworks\runtime-src\proj.android…/…/…/…/…/cocos//scripting/js-bindings/proj.android/Android.mk for module cocos2d_js_static
Android NDK: \
make.exe: Entering directory g:/j/A/external/cocos2d-x/tools/simulator/frameworks/runtime-src/proj.android' [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_cocosbuilder_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_studio_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_csloader_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_spine_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_experimental_video_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_ui_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_experimental_webview_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_extension_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_physics3d_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_navmesh_auto.cpp [armeabi] Compile++ thumb: cocos2d_simulator_static <= extension_set.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= generated_message_util.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= message_lite.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= once.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= atomicops_internals_x86_gcc.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= repeated_field.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= wire_format_lite.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= zero_copy_stream.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= zero_copy_stream_impl_lite.cc [armeabi] Compile++ thumb: cocos2d_simulator_static <= stringprintf.cc [armeabi] StaticLibrary : libcocos2d.a [armeabi] Compile++ arm : cocostudio_static <= WidgetReader.cpp [armeabi] Compile++ arm : cocostudio_static <= WidgetCallBackHandlerProtocol.cpp [armeabi] Compile++ arm : cocostudio_static <= FlatBuffersSerialize.cpp [armeabi] Compile++ arm : cocostudio_static <= CCComExtensionData.cpp [armeabi] Compile++ arm : cocostudio_static <= CocoStudio.cpp [armeabi] Compile++ arm : cocos_ui_static <= UILayoutComponent.cpp [armeabi] Compile++ arm : cocos_ui_static <= UITabControl.cpp [armeabi] Compile++ arm : cocos2dlua_shared <= main.cpp [armeabi] Compile++ arm : cocos2dlua_shared <= AppDelegate.cpp [armeabi] Compile++ arm : cocos2dlua_shared <= RuntimeLuaImpl.cpp [armeabi] Compile++ arm : cocos2dlua_shared <= RuntimeJsImpl.cpp [armeabi] Compile arm : cocos2dlua_shared <= lua_debugger.c [armeabi] Compile++ arm : cocos2d_lua_static <= CCLuaEngine.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= CCLuaBridge.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= CCLuaStack.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= CCLuaValue.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= Cocos2dxLuaLoader.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= LuaBasicConversions.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_module_register.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_experimental_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_physics_auto.cpp [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_deprecated.cpp jni/../../Classes/ide-support/RuntimeJsImpl.cpp:222:52: error: no viable conversion from 'unordered_map<[...], JS::PersistentRootedScript *>' to 'unordered_map<[...], JSScript *>' std::unordered_map<std::string, JSScript*> filenameScript = ScriptingCore::getInstance()->getFileScript(); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ g:/j/A/3rdparty/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.8/include\bits/unordered_map.h:168:7: note: candidate constructor not viable: no known conversion from 'std::unordered_map<std::string, JS::PersistentRootedScript *>' to 'const std::unordered_map<std::basic_string<char>, JSScript *, std::hash<string>, std::equal_to<std::basic_string<char> >, std::allocator<std::pair<const std::basic_string<char>, JSScript *> > > &' for 1st argument unordered_map(const unordered_map&) = default; ^ g:/j/A/3rdparty/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.8/include\bits/unordered_map.h:171:7: note: candidate constructor not viable: no known conversion from 'std::unordered_map<std::string, JS::PersistentRootedScript *>' to 'std::unordered_map<std::basic_string<char>, JSScript *, std::hash<string>, std::equal_to<std::basic_string<char> >, std::allocator<std::pair<const std::basic_string<char>, JSScript *> > > &&' for 1st argument unordered_map(unordered_map&&) = default; ^ g:/j/A/3rdparty/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.8/include\bits/unordered_map.h:184:7: note: candidate constructor not viable: no known conversion from 'std::unordered_map<std::string, JS::PersistentRootedScript *>' to 'initializer_list<value_type>' for 1st argument unordered_map(initializer_list<value_type> __l, ^ [armeabi] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_experimental_manual.cpp 1 error generated. make.exe: *** [obj/local/armeabi/objs/cocos2dlua_shared/__/__/Classes/ide-support/RuntimeJsImpl.o] Error 1 make.exe: *** Waiting for unfinished jobs.... make.exe: Leaving directory
g:/j/A/external/cocos2d-x/tools/simulator/frameworks/runtime-src/proj.android’
Hi @CrazyHappyGame
According to build requirements ndk 11+ is a must. I’m currently downloading ndk12b and v3.12 for testing purposes
EDIT: Link updated. tool for adding hyperlink changed the # by it’s ascii code
@ishmar your link does not work.
Here http://cocos2d-x.org/docs/installation/A/ is:
“NDK r10c+ is required to build Android games”
It seems like ndk12b will in v3.13:
CHP
ishmar
July 7, 2016, 10:58pm
8
Continuing the discussion from Cocos2d-x v3.12 released! :
Let me apology @CrazyHappyGame , fórum editor cheated me and swapped the # by it’s ASCII code. I’ve updated the link, try again.
Agree, we’ll have to wait until ndk12b is supported. Meanwhile, guess we’ll have to give a try to ndk11. Full reléase notes also state that ndk11 is supported:
[FIX] Android: fix compiling error if using NDK r11+
@zhangxm Can you answer about the NDK version and also take a look at cocos gen-libs -p android
failing?
I’ll test it as well.
Yep, there is an issue with ndk r12b, i am fixing it. I think NDK r11+ is ok though i uses ndk r11c.
Thank you!!
compile bug:(android sdk:23 ndk:r11c)
\tests\cpp-tests>cocos run -p android -m release
~~~~
[armeabi] SharedLibrary : libcpp_tests.so
D:/cocos/cocos2d-x/tests/cpp-tests/proj.android/../../../external/websockets/prebuilt/android/armeabi/libwebsockets.a(lws-plat-unix.c.o):lws-plat-unix.c:function lws_plat_context_early_init: error: undefined reference to 'bsd_signal'
D:/cocos/cocos2d-x/tests/cpp-tests/proj.android/../../../external/websockets/prebuilt/android/armeabi/libwebsockets.a(lws-plat-unix.c.o):lws-plat-unix.c:function lws_plat_context_early_init: error: undefined reference to 'bsd_signal'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [obj/local/armeabi/libcpp_tests.so] Error 1
“tests\performance-tests” compile is success.
Nice to see a new update. Does this support IPv6 out of the box?
Pantoo
July 8, 2016, 4:16am
13
“* add Tizen support”
why dont I see Tizen Folder in my JS Game runtime-src folder ???
thanks
Seems very great the utils::findChild
1 Like
Still no Android studio support
Cant even just add c++ support for coding? No run/debug, just auto complete
so atleast we can edit project which have sdkbox implementation.
owen
July 8, 2016, 5:45am
16
Js is not available now on Tizen platform, only Lua and C++ are supported.
Pantoo
July 8, 2016, 7:51am
17
owen:
on
Hi, in near future, will JS support Tizen platform??
thanks
@dbest10 yep, it supports IPV6 only, but it may have issue with CURL lib, can refer to this issue
@pbs0512 i met the issue if i changed tests/cpp-tests/proj.android/project.properties
from target=android-10
to target=android-19
. It is possible that different Android OS has different symbols. And websockets uses bsd_signal
that are removed in higher Android OS. So i suggest you downloading Android 10.
@smitpatel88 will try to support in in 3.13, we are waiting a good supporting of Android Studio.
Thanks zhangxm. Unfortunately it could mean that my app may still be rejected by Apple.
@pbs0512 i found that this error is caused by NDK compatibility issue, can refer to this issue for detail information.
Indeed, the arch-arm/usr/include/signal.h header up to "android-19" contained:
/* differentiater between sysv and bsd behaviour 8*/
extern __sighandler_t sysv_signal(int, __sighandler_t);
extern __sighandler_t bsd_signal(int, __sighandler_t);
/* the default is bsd */
static __inline__ __sighandler_t signal(int s, __sighandler_t f)
{
return bsd_signal(s,f);
}
but starting at "android-21" (there is no android-20) has just:
extern sighandler_t signal(int, sighandler_t);
So it looks that stdlib would have to use different symbols depending on which version of Android SDK it was targeting.
1 Like
So recommended configuration for android is:
android sdk:10
ndk:r11c
?
I think that cocos command line should check it and do not allow compile in different configuration
Regards,
CHP
1 Like