@jus18tin wrote:
Sample code will crash after garbage collected.
samle code:
https://github.com/sdkbox/sdkbox-sample-adcolony/tree/master/jsI added a menu to collect garbage
new cc.MenuItemFont("====clear===", function() { cc.log("======gc start====="); __jsc__.garbageCollect(); cc.log("======gc end====="); })
After the menuItem clicked, it will crash when the listener, such as onAdColonyChange, called.
It will only crash on iOS.here is the full log
2016-07-04 15:31:29.081 adcolony_js-mobile[2684:1707907] { cocos2d.x.version: cocos2d-x-3.9 cocos2d.x.compiled_with_gl_state_cache: true cocos2d.x.build_type: DEBUG gl.supports_vertex_array_object: true cocos2d.x.compiled_with_profiler: false gl.renderer: Apple A9 GPU gl.vendor: Apple Inc. gl.max_texture_size: 4096 gl.max_samples_allowed: 4 gl.version: OpenGL ES 2.0 Apple A9 GPU - 77.14 gl.supports_S3TC: false gl.supports_ATITC: false gl.supports_ETC1: false gl.max_texture_units: 8 gl.supports_PVRTC: true gl.supports_NPOT: true gl.supports_discard_framebuffer: true gl.supports_BGRA8888: false } 2016-07-04 15:31:29.164 adcolony_js-mobile[2684:1707907] cocos2d: fullPathForFilename: No file found at script/jsb_prepare.jsc. Possible missing file. 2016-07-04 15:31:29.294 adcolony_js-mobile[2684:1707907] cocos2d: fullPathForFilename: No file found at script/jsb_boot.jsc. Possible missing file. 2016-07-04 15:31:29.477 adcolony_js-mobile[2684:1707907] JS: Cocos2d-JS v3.9 2016-07-04 15:31:29.598 adcolony_js-mobile[2684:1707907] cocos2d: surface size: 640x1136 2016-07-04 15:31:29.601 adcolony_js-mobile[2684:1707907] JS: Sample Startup 2016-07-04 15:31:29.604 adcolony_js-mobile[2684:1707907] ADCOLONY 2.6.0.5 [info] AdColony library version: 2.6.0.5 32-bit production 2016-07-04 15:31:29.889 adcolony_js-mobile[2684:1708147] ADCOLONY 2.6.0.5 [info] Developer logging enabled 2016-07-04 15:31:31.647 adcolony_js-mobile[2684:1708147] ADCOLONY 2.6.0.5 [trace] Configuration succeeded! 2016-07-04 15:31:31.766 adcolony_js-mobile[2684:1708147] ADCOLONY 2.6.0.5 [info] Ads are ready for zone vzf8e4e97704c4445c87504e 2016-07-04 15:31:31.766 adcolony_js-mobile[2684:1708147] ADCOLONY 2.6.0.5 [info] Ads are ready for zone vzf8fb4670a60e4a139d01b5 2016-07-04 15:31:31.785 adcolony_js-mobile[2684:1707907] JS: onAdColonyChange 2016-07-04 15:31:31.785 adcolony_js-mobile[2684:1707907] JS: dump: 2016-07-04 15:31:31.785 adcolony_js-mobile[2684:1707907] JS: - name: v4vc 2016-07-04 15:31:31.785 adcolony_js-mobile[2684:1707907] JS: - zoneID: vzf8e4e97704c4445c87504e 2016-07-04 15:31:31.785 adcolony_js-mobile[2684:1707907] JS: - shown: false 2016-07-04 15:31:31.785 adcolony_js-mobile[2684:1707907] JS: - iapEnabled: false 2016-07-04 15:31:31.785 adcolony_js-mobile[2684:1707907] JS: - iapProductID: 2016-07-04 15:31:31.785 adcolony_js-mobile[2684:1707907] JS: - iapQuantity: 0 2016-07-04 15:31:31.786 adcolony_js-mobile[2684:1707907] JS: - iapEngagementType: 0 2016-07-04 15:31:31.786 adcolony_js-mobile[2684:1707907] JS: true 2016-07-04 15:31:31.786 adcolony_js-mobile[2684:1707907] JS: onAdColonyChange 2016-07-04 15:31:31.786 adcolony_js-mobile[2684:1707907] JS: dump: 2016-07-04 15:31:31.786 adcolony_js-mobile[2684:1707907] JS: - name: video 2016-07-04 15:31:31.788 adcolony_js-mobile[2684:1707907] JS: - zoneID: vzf8fb4670a60e4a139d01b5 2016-07-04 15:31:31.788 adcolony_js-mobile[2684:1707907] JS: - shown: false 2016-07-04 15:31:31.788 adcolony_js-mobile[2684:1707907] JS: - iapEnabled: false 2016-07-04 15:31:31.788 adcolony_js-mobile[2684:1707907] JS: - iapProductID: 2016-07-04 15:31:31.788 adcolony_js-mobile[2684:1707907] JS: - iapQuantity: 0 2016-07-04 15:31:31.788 adcolony_js-mobile[2684:1707907] JS: - iapEngagementType: 0 2016-07-04 15:31:31.788 adcolony_js-mobile[2684:1707907] JS: true 2016-07-04 15:31:38.318 adcolony_js-mobile[2684:1707907] JS: ======gc start===== 2016-07-04 15:31:38.323 adcolony_js-mobile[2684:1707907] JS: ======gc end===== 2016-07-04 15:31:45.536 adcolony_js-mobile[2684:1707907] JS: show v4vc 2016-07-04 15:31:45.537 adcolony_js-mobile[2684:1707907] ADCOLONY 2.6.0.5 [info] Video ad started playing in zone vzf8e4e97704c4445c87504e 2016-07-04 15:31:45.950 adcolony_js-mobile[2684:1707907] cocos2d: surface size: 640x1136 Process 2684 stopped * thread #1: tid = 0x1a0f83, 0x0140f028 adcolony_js-mobile`JSAutoCompartment::JSAutoCompartment(JSContext*, JSObject*) + 20, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x70) frame #0: 0x0140f028 adcolony_js-mobile`JSAutoCompartment::JSAutoCompartment(JSContext*, JSObject*) + 20 adcolony_js-mobile`JSAutoCompartment::JSAutoCompartment: -> 0x140f028 <+20>: ldr r3, [r2, #0x30] 0x140f02a <+22>: add.w r3, r3, #0x1 0x140f02e <+26>: str r3, [r2, #0x30] 0x140f030 <+28>: str r2, [r1, #0x4] * thread #1: tid = 0x1a0f83, 0x0140f028 adcolony_js-mobile`JSAutoCompartment::JSAutoCompartment(JSContext*, JSObject*) + 20, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x70) * frame #0: 0x0140f028 adcolony_js-mobile`JSAutoCompartment::JSAutoCompartment(JSContext*, JSObject*) + 20 frame #1: 0x000f876e adcolony_js-mobile`AdColonyListenerWrapper::onAdColonyStarted(this=0x1572fba4)::'lambda'()::operator()() const + 118 at PluginAdColonyJSHelper.cpp:263 frame #2: 0x000f86f4 adcolony_js-mobile`void std::__1::__invoke_void_return_wrapper<void>::__call<AdColonyListenerWrapper::onAdColonyStarted(sdkbox::AdColonyAdInfo const&)::'lambda'()&>(AdColonyListenerWrapper::onAdColonyStarted(sdkbox::AdColonyAdInfo const&)::'lambda'()&&&) [inlined] decltype(__f=0x1572fba4)::'lambda'()&>(fp)(std::__1::forward<>(fp0))) std::__1::__invoke<AdColonyListenerWrapper::onAdColonyStarted(sdkbox::AdColonyAdInfo const&)::'lambda'()&>(AdColonyListenerWrapper::onAdColonyStarted(sdkbox::AdColonyAdInfo const&)::'lambda'()&&&) + 26 at __functional_base:416 frame #3: 0x000f86ea adcolony_js-mobile`void std::__1::__invoke_void_return_wrapper<void>::__call<AdColonyListenerWrapper::onAdColonyStarted(__args=0x1572fba4)::'lambda'()&>(AdColonyListenerWrapper::onAdColonyStarted(sdkbox::AdColonyAdInfo const&)::'lambda'()&&&) + 16 at __functional_base:468 frame #4: 0x000f8568 adcolony_js-mobile`std::__1::__function::__func<AdColonyListenerWrapper::onAdColonyStarted(sdkbox::AdColonyAdInfo const&)::'lambda'(), std::__1::allocator<AdColonyListenerWrapper::onAdColonyStarted(sdkbox::AdColonyAdInfo const&)::'lambda'()>, void ()>::operator(this=0x1572fba0)() + 24 at functional:1437 frame #5: 0x00b20b5c adcolony_js-mobile`std::__1::function<void ()>::operator()() const + 100 frame #6: 0x00316734 adcolony_js-mobile`cocos2d::Scheduler::update(float) + 1364 frame #7: 0x00400212 adcolony_js-mobile`cocos2d::Director::drawScene() + 86 frame #8: 0x00b18342 adcolony_js-mobile`-[CCEAGLView layoutSubviews] + 274 frame #9: 0x25ec76fa UIKit`<redacted> + 714 frame #10: 0x23f38568 QuartzCore`<redacted> + 128 frame #11: 0x23f33d2c QuartzCore`<redacted> + 352 frame #12: 0x23f33bbc QuartzCore`<redacted> + 16 frame #13: 0x23f33080 QuartzCore`<redacted> + 368 frame #14: 0x23f32d54 QuartzCore`<redacted> + 520 frame #15: 0x23f2c4fe QuartzCore`<redacted> + 138 frame #16: 0x218af2b0 CoreFoundation`<redacted> + 20 frame #17: 0x218ad5a6 CoreFoundation`<redacted> + 282 frame #18: 0x218ad9e4 CoreFoundation`<redacted> + 972 frame #19: 0x217fc1c8 CoreFoundation`CFRunLoopRunSpecific + 516 frame #20: 0x217fbfbc CoreFoundation`CFRunLoopRunInMode + 108 frame #21: 0x22e18af8 GraphicsServices`GSEventRunModal + 160 frame #22: 0x25f34434 UIKit`UIApplicationMain + 144 frame #23: 0x000e907a adcolony_js-mobile`main(argc=1, argv=0x0206fc40) + 118 at main.m:13 frame #24: 0x214a8872 libdyld.dylib`<redacted> + 2
Posts: 4
Participants: 2