iOS使用JsbBridge报错

  • Creator 版本: 3.4.1

  • 目标平台:iOS

  • 重现方式:
    项目内任意位置调用[[JsbBridge sharedInstance] sendToScript:@“123” arg1:@“345”];报错Thread 1: EXC_BAD_ACCESS (code=1, address=0x28)

  • 首个报错:
    |#0|0x0000000100fa6244 in std::__1::__function::__value_func<void (std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)>::operator()(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const at /Volumes/SANDISK/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk/usr/include/c++/v1/functional:1883|
    |—|---|
    |#1|0x0000000100fa119c in std::__1::function<void (std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)>::operator()(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const at /Volumes/SANDISK/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk/usr/include/c++/v1/functional:2560|
    |#2|0x0000000100fa114c in ScriptNativeBridge::callByNative(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) at /Applications/CocosCreator/Creator/3.4.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native/cocos/bindings/manual/JavaScriptObjCBridge.mm:292|
    |#3|0x0000000100fa2fe0 in callScript(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) at /Applications/CocosCreator/Creator/3.4.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native/cocos/bindings/manual/JavaScriptObjCBridge.mm:444|
    |#4|0x00000001012330f8 in -[JsbBridge sendToScript:arg1:] at /Applications/CocosCreator/Creator/3.4.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native/cocos/platform/apple/JsbBridge.mm:82|
    |#5|0x0000000100a817b8 in -[ViewController viewDidAppear:] at /Volumes/SANDISK/cocosJS/GameDemo/native/engine/ios/ViewController.mm:85|
    |#6|0x00000001a4a34e20 in -[UIViewController _setViewAppearState:isAnimating:] ()|
    |#7|0x00000001a4a35780 in -[UIViewController __viewDidAppear:] ()|
    |#8|0x00000001a4a35a80 in -[UIViewController _endAppearanceTransition:] ()|
    |#9|0x00000001a491eb30 in __48-[UIPresentationController transitionDidFinish:]_block_invoke ()|
    |#10|0x00000001a559ae40 in -[_UIAfterCACommitBlock run] ()|
    |#11|0x00000001a50ffcc8 in _runAfterCACommitDeferredBlocks ()|
    |#12|0x00000001a50ef1f8 in _cleanUpAfterCAFlushAndRunDeferredBlocks ()|
    |#13|0x00000001a5120790 in _afterCACommitHandler ()|
    |#14|0x00000001a280c86c in CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION ()|
    |#15|0x00000001a2806f40 in __CFRunLoopDoObservers ()|
    |#16|0x00000001a2807488 in __CFRunLoopRun ()|
    |#17|0x00000001a2806b90 in CFRunLoopRunSpecific ()|
    |#18|0x00000001b8b29598 in GSEventRunModal ()|
    |#19|0x00000001a50f0638 in -[UIApplication _run] ()|
    |#20|0x00000001a50f5bb8 in UIApplicationMain ()|
    |#21|0x0000000100a82344 in main at /Volumes/SANDISK/cocosJS/GameDemo/native/engine/ios/main.m:7|
    |#22|0x00000001a24e5588 in start ()|

  • 手机型号: iPhone8 iOS 14.2

  • 编辑器操作系统: Xcode13.2.1

  • 重现概率:100%

解决了。需要先配置ts文件的onNative回调。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。