Cocos Creator v1.8.2 测试版发布帖(2月13日更新 rc.2)

热更新里面的那两个cc.eventManager你是怎么改的?
请教一下

你们这个版本把google_breakpad编译进去并且支持了吗?我看有google_breakpad文件夹。

热更新里的怎么改?

有个崩溃, 想向引擎组确认下。在CCEventDispatcher.cpp中的removeEventListener中崩溃了,崩溃栈信息如下:

 	ChariotClient_Win32_Debug.exe!v8::Local<v8::Object>::New(v8::Isolate * isolate, v8::Object * that) Line 8941	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!v8::Local<v8::Object>::New(v8::Isolate * isolate, const v8::PersistentBase<v8::Object> & that) Line 8932	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!se::ObjectWrap::handle(v8::Isolate * isolate) Line 67	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!se::Object::_getJSObject() Line 466	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!se::internal::seToJsValue(v8::Isolate * isolate, const se::Value & v, v8::Local<v8::Value> * outJsVal) Line 80	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!se::internal::seToJsArgs(v8::Isolate * isolate, const std::vector<se::Value,std::allocator<se::Value> > & args, std::vector<v8::Local<v8::Value>,std::allocator<v8::Local<v8::Value> > > * outArr) Line 54	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!se::Object::call(const std::vector<se::Value,std::allocator<se::Value> > & args, se::Object * thisObject, se::Value * rval) Line 484	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!se::Object::detachObject(se::Object * obj) Line 728	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!ScriptingCore::releaseScriptObject(cocos2d::Ref * owner, cocos2d::Ref * target) Line 110	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!cocos2d::EventDispatcher::releaseListener(cocos2d::EventListener * listener) Line 1577	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!cocos2d::EventDispatcher::removeEventListener(cocos2d::EventListener * listener) Line 701	C++	Symbols loaded.
>	ChariotClient_Win32_Debug.exe!cocos2d::ui::Widget::setTouchEnabled(bool enable) Line 586	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!js_cocos2dx_ui_Widget_setTouchEnabled(se::State & s) Line 1064	C++	Symbols loaded.
 	ChariotClient_Win32_Debug.exe!js_cocos2dx_ui_Widget_setTouchEnabledRegistry(const v8::FunctionCallbackInfo<v8::Value> & _v8args) Line 1070	C++	Symbols loaded.
 	v8.dll!0f7441b0()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for v8.dll]		Annotated Frame

出现概率不高,看现象应该是listener对象被GC了。怀疑是因为这个函数调用了两次releaseListener, 而这两次的调用都会触发releaseScriptObject。而第二次的releaseScriptObject调用时,listener对应的jsobj已经被gc了。因为从MSVC调试器上看这个jsobj已经无效了,对象数据区域全部变成0xCDCDCDCD之类的数据,其实就是被销毁了。所以第二次releaseScriptObject时就崩溃了。由此看releaseScriptObject被多调用了一次。我目前是把这个函数中的removeListenerInVector闭包函数中的releaseListener(l)改成了l->release()。

是不是这样的?

哪个函数调用了两次 releaseListener ?
你用的creator是哪个版本?

就是这个版本1.8.2.rc2,是EventDispatcher::removeEventListener函数调用的。只是崩溃出现的机率不高,但流程上是一样的。不太了解垃圾回收的时机原理。

提一个似乎是一直存在的bug, 我在动画里操作了Widget的属性,比如Widget.enabled之类的,关闭动画后,所有节点树上的节点的Widget组件全部失效了,需要重新一个个勾上,很蛋疼

整个项目组与玩家共同集体期待1.8.2的正式版能尽快出来……IOS各种崩溃情况,已经无法控制了~~

同顶.ios各种js底层崩溃.

能在社区发布1.8.2 release的免安装版么? 下载删除使用都很方便。 @Jare

同样ios崩的飞起,1.8.2 rc2
求官方大大关注啊

已经发了1.8.2正式版

1.7.0 的客户端 可以直接热更到 1.8.2 吗?

热更不行的

官网挂的下载地址 win版本下载链接都不对

我们马上修改链接。

1.8.2 正式版发布了,本帖已经很长了,就关闭吧。有需求欢迎另外发帖。