It's caused by `FileUtils::getContents` is invoked in different threads and we use EventDispatcher::dispatchCustomEvent in `FileUtilsAndroid::getContents` to send an event to EngineDataManager.
Since EngineDataManager class is only for internal use and EventDispatcher isn't thread-safe, we make `EngineDataManager::onBeforeReadFile` public and invoke it `FileUtilsAndroid::getContents`.
* use prebuilt bullet
* prebuilt bullet work ok on linux
* update search path
* update search path
* fix compiling issue for lua/jsb projects
* prebuilt bullet work on windows
* update 3rd party lib version
* add bullet search path
* fix script bindings issue
* fix scripting binding
* Added three new methods for UiWebView. SetOpacityWebView(float), getOpacityWebView(), setBackgroundTransparent() in IOS
* Implemented methods for UiWebView. SetOpacityWebView(float), getOpacityWebView(). They only work using android sdk +11.
* New methods not implemented for Tizen.
* Added new button for testing the opacity in the cocos2d-x test application.
* Added setBackgroundTransparent to android, and his UI-Test.
* Added setBackgroundTransparent to android, and his UI-Test.
* Added keyword const to the getters.
* Android sdk reflection. +11sdk for chaging the opacity.
* Reflection used for the webview.setLayerType, webview.setAlpha, webview.getAlpha
* Unified exceptions.
* remove APP_SHORT_COMMANDS setting (#17722)
some developers report it will cause error on Windows though i can not reproduce it. It is strange, the setting is used to resolve command length limitation on Windows.
* Particle font size should be a const value (#17676)
* Particle font size should be a const value
* Minor fix: CCStencilStateManager.hpp -> CCStencilStateManager.h in xcode project.
* JSB SocketIO.connect supports to pass a CA cert file (#17736)
* JSB SocketIO.connect supports to pass a CA cert file
* The second parameter of SocketIO.connect function is probably a `option` object. JSB just ignores it.
* The optimization for huawei. (#17832)
* The optimization for huawei.
* setAnimationInterval fix for all platforms.
* disable debug
* include fix.
* Uses better configuration for huawei optimization (#17838)
* Uses better configuration for huawei optimization
* Updates jar file and uncomment fps controlling code
* [ci skip][AUTO]: updating luabinding & jsbinding & cocos_file.json automatically (#17840)
* update release not and version (#17845)
* [android] Removes an unused variable sRegistered in Cocos2dxActvity.java. (#17861)
* Updates jar to resolve warning while packaging APK file. (#17863)
* update release date (#17870)
* fix compiling error
* fix to problem with updating APK in Google Play keeping OBB from previous version
This patch fixes the problem when we are unable to keep OBB from previous version when we are uploading new .apk to Google Play.
It was discussed here:
http://discuss.cocos2d-x.org/t/problem-with-updating-apk-in-google-play-keeping-obb-from-previous-version-because-versioncode-changes/36039
* check for null pointer added
Found an issue which could lead to a crash because of null pointer exception.
If pathToOBB doesn't exist then File.list will return null which will cause fileNames array be null.
Now it is fixed.
* LayerRadialGradient works on mac and iOS
* fix radius
* finish LayerRadialGradient and add test case
* use local coordinate in shader
* adjust function attributes
* implement getCenter()
* add some comments
* [Win32,WinRT] Fix listFiles and listFilesRecursively use unicode.
1. Incorrect convertation to unicode
if (length != fullpath.size()) correct only ASCII char.
2. For convert unicode exist api, to avoid errors.
3. Equal first char on '.' - error
Need check full name file on "." and "..", otherwise exclude file and
folder begin '.'
Now not use macro UNICODE, for easy use unicode convert api(Otherwise,
you need to connect different versions WinRT and Win32).
* Fix minggo remark.
* Move to specific platform section.
* fix editbox textChanged event called after fragment loaded
* fix editbox duplicatd text when change text in textChanged callback
* revert changes of placeholder modification
This permits comments to be visible in tooltips for the variable and it's associated accessor functions
e.g.
//The health of the entity, when this reaches zero the entity is dead
CC_SYNTHESIZE(float, m_health, Health)
Previously the above comment would only be displayed in the tooltip for the member variable
* Adding async functions for FileUtils::listFiles and FileUtils::listFilesRecursively.
* Updating CCFileUtils::listFiles and CCFileUtils::listFilesRecursively to not expose their async version to
the JS and Lua scripting layers, due to a bug in the binding generator code.
* Updating comments in CCFileUtils.h to prevent improper JS bindings to be generated.
* Editing the cocos2dx.ini files, to prevent bindings for listFilesRecursivelyAsync and listFilesAsync to be generated.
* fixed#17685: [android] Audio in game couldn't be mute while a ring or a call is coming
* Updates comments in AudioEngine-inl.cpp and removes extra empty line in javaactivity-android.cpp
* Puts audio focus relative code to another java file named Cocos2dxAudioFocusManager.java
Renames setAudioFocusLost to setAudioFocus.
* Renames JNI function.
* Register audio focus in onResume and unregister it in onPause.
* fixed#17665: [android] Crash while launching on the devices only support OpenGL ES 2.
Fixes that egl.eglCreateContext may return non-null but EGL10.EGL_NO_CONTEXT value.
It will cause create a EGL env with a EGL_NO_CONTEXT egl context which will cause crash.
* Don’t link with libGLESv1_CM.so
* Adds libmd5-rfc library since the functions in <openssl/md5.h> aren’t exported in win10, plus <openssl/md5.h> seems to be private header.
* Adds libmd5-rfc library for win32 and win10.
* Removes json/msinttypes folder from xcode since it’s only needed for win32 | win10.
* fixed#17497: Win32 performance is bad.
The 'Sleep(1)' in FPS controlling code isn't precise enough. Windows sets timer precision from 1ms to 15ms, we need to set the precision to the highest one (1ms). Although it's still not enough, we need to make some tricks in the FPS controlling code, that is, don't sleep if the interval is equal or less than 1 millisecond.
* Untabify code.
* Fix custom event being discard during event emission
* Fix tilemap black line issue
* Fix auto bindings config
* Adapt websocket to new memory model
* Improve cocos2d_specifics code stability
* Fix issue with get_or_create_js_object function
* Improve memory usage in function wrapper invocation
* Use JS Function bind to avoid memory tracking issues
* Support size parameter to collect total byte size before update process
* Fix download resuming issue on Android
* Remove temporary assets when temporary manifest is invalid or out of date
* Use version compare handle to compare manifests versions
* Support max concurrent tasks setting & download verify callback
* Add Manifest::Asset conversion
* Avoid crash caused by wrappers
* Sync implementation of tested and published AssetsManagerEx from Cocos Creator
* Fix linux compilation issues
* Improve the AndroidStudio configuration of test projects to fit the new implementation of cocos compile.
* Improve the AndroidStudio configuration of templates to fit the new implementation of cocos compile.
* Some fixes for search paths:
1. Adds ‘_originalSearchPaths’ variable, ’getSearchPaths’ returns the original values set by ‘setSearchPaths’ or ‘addSearchPath’.
2. Adds a getter function ‘getDefaultResourceRootPath’.
3. ‘setDefaultResourceRootPath’ should also update search paths and remove file path cache internally.
4. ‘setSearchPaths’ supports to pass self (_originalSearchPath), could be used in ‘setDefaultResourceRootPath’ to update the final ’_searchPathArray’ for searching full path.
5. ‘addSearchPath’ fix, the default resource root path should be the last element in ‘_searchPathArray’.
* Checks whether the parameter ‘searchResolutionOrder’ passed in is the same as ‘_searchResolutionsOrderArray’.
* Don’t break the compatibility, add a new method called ‘FileUtils::getOriginalSearchPaths’.
* 17357: Better encapsulate the definition of mouse buttons
Move definition of buttons from a list of #define's to an enum class and
make appropriate updates for successful compilation.
* 17357: Better encapsulate the definition of mouse buttons
Updates from code review:
* Removed changes to automatically generated files
* Removed std::ostream& convenience operator
* 17357: Fix mouse tests
* Fix various compilation issues.
Mostly errors on field initialization order but also missing files
in CMakeLists and missing include directives.
* Fix compilations issues with GCC 6.2
* Fix gitignore libs/ entry to not ignore the Android external libraries.
* Refactors WebSocket:
1. Supports wss protocol
2. Uses only one libwebsockets context, multiple wsi instances to avoid multi-thread issues
3. Uses lws_create_vhost to create multiple virtual host, different protocols works
* Adds openssl include path to xcode project configuration.
* mac doesn’t depend on curl
* ca file path should be full path.
* More bug fixes like which in https://github.com/cocos2d/cocos2d-x/pull/6986
* Remove curl dependence for mac
* Updates Andorid.mk
* [win32] Adds wss support for win32, and updates openssl, libcurl, libwebsockets libraries.
* Updates external/config.json to 118.
* [win32] Updates cocos/2d/libcocos2d.vcxproj to fix compilation error while building in release mode.
* Linux support websocket ssl connection.
* Updates external/config.json
* Updates install-deps-linux.sh
* Adds dependence of binutils, print ld version
* Updates travis scripts.
* Updates travis scripts.
* Updates travis script, don’t output log while extracting.
* update before-install.sh
* updates before-install.sh
* updates before-install.sh
* don’t output log for installing software.
* Updates config.json to 120.
* Add EventDispatcher#hasEventListener (sync from creator)
* Fix function wrapper using js object during its gc
* Support more system languages
* Direct log/error for better understanding problems & add sys.now
* Synchronize Editbox APIs
* Synchronize Scheduler.PRIORITY_NON_SYSTEM const
* Upgrade web engine
* Upgrade test cases
* Manually bind EventDispatcher::addCustomEventListener to avoid memory issue
* Manual bind EventListeners’ create to avoid memory issue
* Fix compilation issue when COCOS_DEBUG = 2
* Unify function name of Texture2D::releaseTexture
* Fix compilation issues and update web & bindings-generator
* Fix lua compilation issue
* Use %ld instead of %zd
* Separate FinalizeHook for ref objects and non ref objects
* Fix spine TrackEntry recursive conversion issue by using getter
* Fix crash during Wrappers deallocation (possible to have leak)
* Increase default JS heap to 32 mb
* Update engine version
* Add change log of web engine
* Improve cc.formatStr
* Fix chipmunk crash issues when using setDefaultCollisionHandler
* Add change log for JSB and update web engine ref
* [android] Catches ‘NumberFormatException’ while invoking Integer.parseInt.
* [android] Catches ‘NullPointerException’ while converting Integer to int in Cocos2dxActivity.hideVirtualButton.
* These variables can be accessed by reference
* Assign values in initialization list
* _range can also be in initialization list
* Prefixed ++ and added 'auto' to loops
Also removed extra whitespace
* Prefixed ++/--, and changed for-loop implementation to use 'auto' on some loops