【问题标题】:How to kill Cocos2d-x test app如何杀死 Cocos2d-x 测试应用
【发布时间】:2023-03-30 06:46:01
【问题描述】:

我们正在创建一个用于 Cocos2d-x 游戏(Android/iOS 上)的 SDK。

作为开发的一部分,我们设置了一个测试框架,用于在真实设备上运行各种测试(目前仅限 Android)。

一个特定的测试需要终止应用并重新启动它。

Cocos2d-x 似乎没有提供任何 API 来退出(或杀死)正在运行的应用程序。

一些在线资源表明人们使用了exit(0)的电话。

Cocos2d-x 有什么方法可以退出游戏吗?

调用exit(0) 似乎崩溃了:

#00  pc 0001e824  /system/lib/libc.so
#01  pc 0001c76c  /system/lib/libc.so (abort+4)
#02  pc 000122ed  /system/lib/libc.so
#03  pc 00010f9d  /system/lib/libc.so (dlfree+1184)
#04  pc 0000dabf  /system/lib/libc.so (free+10)
#05  pc 000cbf59  /data/app-lib/com.test.cocos2dx_testapp-1/libhellocpp.so (cocos2d::BitmapDC::~BitmapDC()+10)
#06  pc 00024639  /system/lib/libc.so (__cxa_finalize+156)
#07  pc 000248f1  /system/lib/libc.so (exit+6)

【问题讨论】:

    标签: android c++ testing integration-testing cocos2d-x


    【解决方案1】:

    示例项目 HelloCpp 在其示例中有一个退出按钮。查看 HelloWorldScene.cpp 和函数回调 menuCloseCallback(函数可能会根据您使用的 cocos2dx 版本而有所不同)

    void HelloWorld::menuCloseCallback(CCObject* pSender)
    {
    #if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
        CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");
    #else
        CCDirector::sharedDirector()->end();
    #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
        exit(0);
    #endif
    #endif
    }
    

    对于 android,答案是 CCDirector::sharedDirector()->end();

    请注意,如果您的应用调用 exit(0),我认为 Apple 不会批准您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      相关资源
      最近更新 更多