3.7打包 Android ,拉取微信/qq登录窗口后闪退

  • Creator 版本: 3.7.0

  • 目标平台: Android

  • 重现方式:QQ登录/微信登录SDK拉取授权页面游戏暂停后报错闪退

*日志:
2023-01-20 12:33:47.513 22792-22792/com.chinanola.tkzz D/AppLog: onActivityPaused 天空之战
2023-01-20 12:33:47.514 22792-22792/com.chinanola.tkzz V/threaded_app: Pause: 0x7e35cff480
2023-01-20 12:33:47.518 22792-22830/com.chinanola.tkzz V/threaded_app: activityState=13
2023-01-20 12:33:47.518 22792-22830/com.chinanola.tkzz I/Cocos: 12:33:47 [INFO]: AndroidPlatform: APP_CMD_PAUSE
2023-01-20 12:33:47.518 22792-22792/com.chinanola.tkzz D/AppLog: onActivityPaused
2023-01-20 12:33:47.535 22792-22987/com.chinanola.tkzz W/SQLiteLog: (28) double-quoted string literal: "
2023-01-20 12:33:47.535 22792-22987/com.chinanola.tkzz W/SQLiteLog: (28) double-quoted string literal: “445AE54F8FED25DB0D102810A9FEFC3B”
2023-01-20 12:33:47.549 22792-22792/com.chinanola.tkzz V/threaded_app: WindowFocusChanged: 0x7e35cff480 – 0
2023-01-20 12:33:47.552 22792-22792/com.chinanola.tkzz D/CompatibilityChangeReporter: Compat change id reported: 150939131; UID 10945; state: DISABLED
2023-01-20 12:33:47.554 22792-22830/com.chinanola.tkzz I/Cocos: 12:33:47 [INFO]: AndroidPlatform: APP_CMD_LOST_FOCUS
2023-01-20 12:33:48.062 22792-22792/com.chinanola.tkzz V/threaded_app: ConfigurationChanged: 0x7e35cff480
2023-01-20 12:33:48.065 22792-22830/com.chinanola.tkzz V/threaded_app: APP_CMD_CONFIG_CHANGED
2023-01-20 12:33:48.065 22792-22830/com.chinanola.tkzz V/threaded_app: Config: mcc=460 mnc=1 lang=zh cnt=CN orien=2 touch=3 dens=440 keys=1 nav=1 keysHid=3 navHid=0 sdk=30 size=2 long=2 modetype=1 modenight=1
2023-01-20 12:33:48.065 22792-22830/com.chinanola.tkzz I/Cocos: 12:33:48 [INFO]: AndroidPlatform: APP_CMD_CONFIG_CHANGED
2023-01-20 12:33:48.078 22792-22792/com.chinanola.tkzz D/DecorView[]: getWindowModeFromSystem windowmode is 1
2023-01-20 12:33:48.139 22792-22792/com.chinanola.tkzz V/threaded_app: NativeWindowResized: 0x7e35cff480 – 0x7de4dc1010 ( 1080 x 2340 )
2023-01-20 12:33:48.139 22792-22792/com.chinanola.tkzz V/threaded_app: NativeWindowRedrawNeeded: 0x7e35cff480 – 0x7de4dc1010
2023-01-20 12:33:48.153 22792-22830/com.chinanola.tkzz I/Cocos: 12:33:48 [INFO]: AndroidPlatform: APP_CMD_WINDOW_RESIZED
2023-01-20 12:33:48.157 22792-22830/com.chinanola.tkzz A/libc: E:/Cocos/CocosDashboard/resources/.editors/Creator/3.7.0_test/resources/resources/3d/engine/native/cocos/engine/Engine.cpp:320: bool cc::Engine::redirectWindowEvent(const cc::WindowEvent &): assertion “w” failed
2023-01-20 12:33:48.390 22792-22833/com.chinanola.tkzz D/GameControllerThread: onInputDeviceChanged id: 3
2023-01-20 12:33:48.462 22792-22894/com.chinanola.tkzz V/AudioMixerController: Play over …
2023-01-20 12:33:48.463 22792-22894/com.chinanola.tkzz V/AudioMixerController: Doesn’t have enough tracks: 1, 1
2023-01-20 12:33:48.602 22792-22830/com.chinanola.tkzz A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 22830 (Thread-4), pid 22792 (.chinanola.tkzz)
2023-01-20 12:33:48.901 22792-22894/com.chinanola.tkzz I/AudioTrack: isLongTimeZeroData zero date time 1 Seconds
2023-01-20 12:33:49.324 22792-22792/com.chinanola.tkzz V/threaded_app: NativeWindowDestroyed: 0x7e35cff480 – 0x7de4dc1010
2023-01-20 12:33:49.324 22792-22792/com.chinanola.tkzz V/threaded_app: android_app_set_window called

  • 首个报错:2023-01-20 12:38:01.450 23548-23720/com.chinanola.tkzz A/libc: E:/Cocos/CocosDashboard/resources/.editors/Creator/3.7.0_test/resources/resources/3d/engine/native/cocos/engine/Engine.cpp:320: bool cc::Engine::redirectWindowEvent(const cc::WindowEvent &): assertion “w” failed

abort 0x0000007ed286d8f8
__assert2 0x0000007ed286dccc
cc::Engine::redirectWindowEvent(cc::WindowEvent const&) Engine.cpp:320
cc::Engine::Engine()::_0::operator()(cc::WindowEvent const&) const Engine.cpp:108 decltype(std::__ndk1::forward<cc::Engine::Engine()::_0&>(fp)(std::__ndk1::forward<cc::WindowEvent const&>(fp0))) std::__ndk1::__invoke<cc::Engine::Engine()::_0&, cc::WindowEvent const&>(cc::Engine::Engine()::_0&, cc::WindowEvent const&) type_traits:3501
void std::__ndk1::__invoke_void_return_wrapper::__call<cc::Engine::Engine()::_0&, cc::WindowEvent const&>(cc::Engine::Engine()::_0&, cc::WindowEvent const&) __functional_base:348
std::__ndk1::__function::__alloc_func<cc::Engine::Engine()::_0, std::__ndk1::allocator<cc::Engine::Engine()::_0>, void (cc::WindowEvent const&)>::operator()(cc::WindowEvent const&) functional:1540
std::__ndk1::__function::__func<cc::Engine::Engine()::_0, std::__ndk1::allocator<cc::Engine::Engine()::_0>, void (cc::WindowEvent const&)>::operator()(cc::WindowEvent const&) functional:1714
std::__ndk1::__function::__value_func<void (cc::WindowEvent const&)>::operator()(cc::WindowEvent const&) const functional:1867
std::__ndk1::function<void (cc::WindowEvent const&)>::operator()(cc::WindowEvent const&) const functional:2473
void cc::event::Listenercc::events::WindowEvent::invoke<cc::WindowEvent const&>(cc::WindowEvent const&) EventBus.h:164
cc::event::BusEventBroadcaster<cc::events::WindowEvent, cc::WindowEvent const&>::doBroadcast(cc::WindowEvent const&) EventBus.h:197
bool cc::event::BusEventListenerContainer::broadcast<cc::events::WindowEvent, cc::WindowEvent const&>(cc::WindowEvent const&) EventBus.h:101
void cc::event::broadcast<cc::events::WindowEvent, cc::WindowEvent const&>(cc::WindowEvent const&) EventBus.h:208
cc::events::WindowEvent::broadcast(cc::WindowEvent const&) EngineEvents.h:309
cc::GameInputProxy::handleAppCommand(int) AndroidPlatform.cpp:413
cc::handleCmdProxy(android_app*, int) AndroidPlatform.cpp:489
process_cmd android_native_app_glue.c:178
cc::AndroidPlatform::loop() AndroidPlatform.cpp:597
cc::AndroidPlatform::run(int, char const**) AndroidPlatform.cpp:582
::android_main(android_app ) JniCocosEntry.cpp:38
android_app_entry android_native_app_glue.c:211
__pthread_start(void
) 0x0000007ed28cf0f0
__start_thread 0x0000007ed286f854

是在Dashboard上下的3.7.0版本,因为之前用的社区公测,下完改了文件名

有大佬看看么_(:I」∠)_

调试模式下看这里的"w"为null,之后就终止了

意思是公测版正常,正式版后报错了?

3.4.2的时候是正常的

试了下3.4.2和3.7.0两个空项目重新接入微信登录,3.4.2不闪退,3.7.0闪退

把另一个游戏进程杀了,就不会闪退.调试模式下,端口相同会导致闪退问题.和工程没关系

我在安卓模拟器上调用相册选择图片返回时也会产生同样的错误

Engine.cpp:326: bool cc::Engine::redirectWindowEvent(const cc::WindowEvent &): assertion “w” failed

奇怪的是在真机上并不会有这个问题,模拟器上也并没有别的游戏进程,这个问题要怎么解决呢

这个错误通常是由于在某些情况下,调用了未初始化的 Window 对象导致的。在真机上可能没有问题,因为可能没有遇到类似的情况,但在模拟器上可能会遇到这种情况。

要解决这个问题,可以尝试以下几种方法:

  1. 确保在调用相册选择图片之前,已经创建了有效的窗口对象。可以尝试在应用程序启动时创建窗口对象,以确保它已经初始化。
  2. 确保在调用相册选择图片之前,没有其他的窗口或进程正在运行,可能会干扰应用程序的窗口对象。
  3. 如果使用的是某个框架或库,可以检查其文档或支持论坛,看看是否有类似的问题和解决方案。
  4. 如果以上方法都不起作用,可以尝试使用其他模拟器或在真机上测试应用程序。