如题, 进入游戏主scene后, 模拟器必定崩溃, 1.8.0无此问题
你这样引擎组没法给你解答问题。
给出详细信息吧,这种问题一点一点注释代码,应该可以找到崩溃的地方。
不知道是什么原因, 我看v1.7.0的引擎这里也是这样的, 并没有变动, 但是在creator1.8.0下是正常的, 迁到 1.8.1 就被assert了
看看1.8.1的changelog,有这么一条
[DragonBones] 修复 Web 平台上 DragonBonesData 名字相同,骨骼数据不同时无法正确加载的问题
但是这个是web平台的
有两个不同的骨骼数据name是一样的?会不会是拆东墙补西墙了?
这是指_ske.json或是_tex.json的名字有相同么? 我没找到我这里有相同文件名的骨骼文件么?
应该是同一个配置文件里,不同row的数据
同一个龙骨工程导出的多个不同的龙骨文件 就可能会出现名字相同的情况
一般来说 是用了相同的资源,不同的动画
1.8.2 应该已经修复了的。麻烦你删掉 build 目录再试一次。如果还是不行请提交 demo
我这里1.8.1版本测试的时候没有遇到过模拟器崩溃的问题,都可以正常运行。。。
你的操作步骤是什么或者能不能提供一个可以复现的 demo ?
试图给demo版本时, 又发现另外一个问题,
Process: Simulator [50079]
Path: /Applications/CocosCreator.app/Contents/Resources/cocos2d-x/simulator/mac/Simulator.app/Contents/MacOS/Simulator
Identifier: com.cocos.apps.simulator
Version: 20171130
Code Type: X86-64 (Native)
Parent Process: CocosCreator [48403]
Responsible: Simulator [50079]
User ID: 501
Date/Time: 2018-02-06 11:48:53.993 +0800
OS Version: Mac OS X 10.13.3 (17D47)
Report Version: 12
Anonymous UUID: 095F4BFF-83C0-0065-263B-8A719340CB90
Sleep/Wake UUID: 5980476E-FBD7-42A1-BC09-2A4CC7B755EB
Time Awake Since Boot: 170000 seconds
Time Since Wake: 6300 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
VM Regions Near 0x18:
-->
Kernel Alloc Once 0000000010008000-000000001000a000 [ 8K] rw-/rwx SM=PRV
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.cocos.apps.simulator 0x0000000110a23efc cocos2d::Sprite::setSpriteFrame(cocos2d::SpriteFrame*) + 124
1 com.cocos.apps.simulator 0x0000000110cffc33 dragonBones::CCSlot::_updateFrame() + 4547
2 com.cocos.apps.simulator 0x0000000110b54534 dragonBones::Slot::_updateDisplay() + 900
3 com.cocos.apps.simulator 0x0000000110b55bc1 dragonBones::Slot::_update(int) + 65
4 com.cocos.apps.simulator 0x0000000110744f21 dragonBones::Armature::advanceTime(float) + 1201
5 com.cocos.apps.simulator 0x00000001107d72e4 dragonBones::BaseFactory::buildArmature(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const + 324
6 com.cocos.apps.simulator 0x0000000110d0ce8d dragonBones::CCFactory::buildArmatureDisplay(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const + 77
7 com.cocos.apps.simulator 0x00000001100a9fbc js_cocos2dx_dragonbones_CCFactory_buildArmatureDisplay(se::State&) + 2588
8 com.cocos.apps.simulator 0x00000001100a944c js_cocos2dx_dragonbones_CCFactory_buildArmatureDisplayRegistry(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) + 332
9 com.apple.JavaScriptCore 0x00007fff341b6409 long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::ExecState*) + 601
10 com.apple.JavaScriptCore 0x00007fff33a034fa JSC::LLInt::setUpCall(JSC::ExecState*, JSC::Instruction*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*) + 618
11 com.apple.JavaScriptCore 0x00007fff342a15a0 llint_entry + 27288
12 com.apple.JavaScriptCore 0x00007fff342a153c llint_entry + 27188
13 com.apple.JavaScriptCore 0x00007fff342a153c llint_entry + 27188
14 com.apple.JavaScriptCore 0x00007fff342a15ae llint_entry + 27302
15 com.apple.JavaScriptCore 0x00007fff3429a920 vmEntryToJavaScript + 304
16 com.apple.JavaScriptCore 0x00007fff34171e43 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 147
17 com.apple.JavaScriptCore 0x00007fff33a05c71 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 433
18 com.apple.JavaScriptCore 0x00007fff33a05aae JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 62
19 com.apple.JavaScriptCore 0x00007fff340b6a53 JSC::callSetter(JSC::ExecState*, JSC::JSValue, JSC::JSValue, JSC::JSValue, JSC::ECMAMode) + 323
20 com.apple.JavaScriptCore 0x00007fff341fdf12 JSC::JSObject::putInlineSlow(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&) + 898
21 com.apple.JavaScriptCore 0x00007fff33b76662 llint_slow_path_put_by_id + 1010
22 com.apple.JavaScriptCore 0x00007fff3429ddf3 llint_entry + 13035
23 com.apple.JavaScriptCore 0x00007fff342a15ae llint_entry + 27302
24 com.apple.JavaScriptCore 0x00007fff342a15ae llint_entry + 27302
25 com.apple.JavaScriptCore 0x00007fff342a15ae llint_entry + 27302
26 com.apple.JavaScriptCore 0x00007fff342a15ae llint_entry + 27302
27 com.apple.JavaScriptCore 0x00007fff342a15ae llint_entry + 27302
28 com.apple.JavaScriptCore 0x00007fff342a153c llint_entry + 27188
29 com.apple.JavaScriptCore 0x00007fff342a153c llint_entry + 27188
30 com.apple.JavaScriptCore 0x00007fff3429a920 vmEntryToJavaScript + 304
31 com.apple.JavaScriptCore 0x00007fff34171e43 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 147
32 com.apple.JavaScriptCore 0x00007fff33a05c71 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 433
33 com.apple.JavaScriptCore 0x00007fff33d46f92 JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 178
34 com.apple.JavaScriptCore 0x00007fff33a059b1 JSObjectCallAsFunction + 481
35 com.cocos.apps.simulator 0x000000011003dc56 se::Object::call(std::__1::vector<se::Value, std::__1::allocator<se::Value> > const&, se::Object*, se::Value*) + 294
36 com.cocos.apps.simulator 0x00000001105a1b55 js_EventListenerCustom_create(se::State&)::$_17::operator()(cocos2d::EventCustom*) const + 3733
37 com.cocos.apps.simulator 0x00000001105a0cb0 void std::__1::__invoke_void_return_wrapper<void>::__call<js_EventListenerCustom_create(se::State&)::$_17&, cocos2d::EventCustom*>(js_EventListenerCustom_create(se::State&)::$_17&&&, cocos2d::EventCustom*&&) + 80
38 com.cocos.apps.simulator 0x00000001105a0a49 std::__1::__function::__func<js_EventListenerCustom_create(se::State&)::$_17, std::__1::allocator<js_EventListenerCustom_create(se::State&)::$_17>, void (cocos2d::EventCustom*)>::operator()(cocos2d::EventCustom*&&) + 57
39 com.cocos.apps.simulator 0x0000000110849bb9 std::__1::function<void (cocos2d::EventCustom*)>::operator()(cocos2d::EventCustom*) const + 153
40 com.cocos.apps.simulator 0x0000000110849b11 cocos2d::EventListenerCustom::init(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (cocos2d::EventCustom*)> const&)::$_0::operator()(cocos2d::Event*) const + 97
41 com.cocos.apps.simulator 0x0000000110849aa0 void std::__1::__invoke_void_return_wrapper<void>::__call<cocos2d::EventListenerCustom::init(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (cocos2d::EventCustom*)> const&)::$_0&, cocos2d::Event*>(cocos2d::EventListenerCustom::init(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (cocos2d::EventCustom*)> const&)::$_0&&&, cocos2d::Event*&&) + 80
42 com.cocos.apps.simulator 0x0000000110849949 std::__1::__function::__func<cocos2d::EventListenerCustom::init(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (cocos2d::EventCustom*)> const&)::$_0, std::__1::allocator<cocos2d::EventListenerCustom::init(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (cocos2d::EventCustom*)> const&)::$_0>, void (cocos2d::Event*)>::operator()(cocos2d::Event*&&) + 57
43 com.cocos.apps.simulator 0x0000000110ca2c39 std::__1::function<void (cocos2d::Event*)>::operator()(cocos2d::Event*) const + 153
44 com.cocos.apps.simulator 0x0000000110ca2b64 cocos2d::EventDispatcher::dispatchEvent(cocos2d::Event*)::$_2::operator()(cocos2d::EventListener*) const + 84
45 com.cocos.apps.simulator 0x0000000110ca2b00 bool std::__1::__invoke_void_return_wrapper<bool>::__call<cocos2d::EventDispatcher::dispatchEvent(cocos2d::Event*)::$_2&, cocos2d::EventListener*>(cocos2d::EventDispatcher::dispatchEvent(cocos2d::Event*)::$_2&&&, cocos2d::EventListener*&&) + 80
46 com.cocos.apps.simulator 0x0000000110ca2999 std::__1::__function::__func<cocos2d::EventDispatcher::dispatchEvent(cocos2d::Event*)::$_2, std::__1::allocator<cocos2d::EventDispatcher::dispatchEvent(cocos2d::Event*)::$_2>, bool (cocos2d::EventListener*)>::operator()(cocos2d::EventListener*&&) + 57
47 com.cocos.apps.simulator 0x0000000110c85369 std::__1::function<bool (cocos2d::EventListener*)>::operator()(cocos2d::EventListener*) const + 153
48 com.cocos.apps.simulator 0x0000000110c851d4 cocos2d::EventDispatcher::dispatchEventToListeners(cocos2d::EventDispatcher::EventListenerVector*, std::__1::function<bool (cocos2d::EventListener*)> const&) + 1348
49 com.cocos.apps.simulator 0x0000000110c85764 cocos2d::EventDispatcher::dispatchEvent(cocos2d::Event*) + 996
50 com.cocos.apps.simulator 0x00000001109f4dfe cocos2d::Director::drawScene() + 94
51 com.cocos.apps.simulator 0x00000001109fa670 cocos2d::Director::mainLoop() + 112
52 com.cocos.apps.simulator 0x0000000110dda6bd cocos2d::Application::run() + 173
53 com.cocos.apps.simulator 0x00000001100002df -[AppController startup] + 2015
54 com.cocos.apps.simulator 0x000000010fffb11d -[AppController applicationDidFinishLaunching:] + 413
55 com.apple.CoreFoundation 0x00007fff309c3bbc __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
56 com.apple.CoreFoundation 0x00007fff309c3aaa _CFXRegistrationPost + 442
57 com.apple.CoreFoundation 0x00007fff309c37f2 ___CFXNotificationPost_block_invoke + 50
58 com.apple.CoreFoundation 0x00007fff30981670 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1664
59 com.apple.CoreFoundation 0x00007fff309807a3 _CFXNotificationPost + 595
60 com.apple.Foundation 0x00007fff32a65467 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
61 com.apple.AppKit 0x00007fff2e0c360a -[NSApplication _postDidFinishNotification] + 313
62 com.apple.AppKit 0x00007fff2e0c3253 -[NSApplication _sendFinishLaunchingNotification] + 220
63 com.apple.AppKit 0x00007fff2df95f13 -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 562
64 com.apple.AppKit 0x00007fff2df95b49 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 690
65 com.apple.Foundation 0x00007fff32aa8404 -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 287
66 com.apple.Foundation 0x00007fff32aa8282 _NSAppleEventManagerGenericHandler + 102
67 com.apple.AE 0x00007fff31a93dd0 aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned char*) + 1788
68 com.apple.AE 0x00007fff31a93677 dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 41
69 com.apple.AE 0x00007fff31a93565 aeProcessAppleEvent + 383
70 com.apple.HIToolbox 0x00007fff2fcd55e0 AEProcessAppleEvent + 55
71 com.apple.AppKit 0x00007fff2df9121e _DPSNextEvent + 2788
72 com.apple.AppKit 0x00007fff2e726b4c -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
73 com.apple.AppKit 0x00007fff2df85d6d -[NSApplication run] + 764
74 com.apple.AppKit 0x00007fff2df54f1a NSApplicationMain + 804
75 com.cocos.apps.simulator 0x0000000110019842 main + 34
76 libdyld.dylib 0x00007fff582c5115 start + 1
用你的 demo 验证确实模拟器会崩溃,在浏览器运行也是有出现报错。根据报错来看应该是你这个图片资源的问题,在场景里面的时候已经加载不到了,你先把这个图片问题解决了再试一下
这里不是资源的问题, 是这个动画有点特殊, 有对动画做加密, 如果不是使用自定义引擎 , 加载成功后会是这个效果
demo那个崩溃的缓头找到了, 不知道为什么在meta文件的texture为空, 这里不知道是怎么回事, 正常情况应该是右边的图片
我现在再试着重现下第一个问题
debug.zip (890.5 KB)
这个demo中的报错和原始的问题是一致的,
只是需要点击刷新3次, 看上去是对同一份db资源两次加载所致。
这个问题出现在1.8.1, 1.8.0可以正常运行。
另外, 我原始工程中, 没并有地方对同一份db加载两次, 这里有些奇怪。
这个case又没下文了么?
1.8.2 修复了此问题。你可以临时应用一下补丁:
https://github.com/cocos-creator/engine/pull/2290
https://github.com/cocos-creator/cocos2d-x-lite/pull/1083
你可以试试1.8.2 beta版本看看。
我试了今天发布的1.8.2rc1还是有这个问题, 你可以用上传的demo试一下。 这里主要是模拟器的存在此问题,打包成apk在android真机上没问题, ios还没尝试