zoukankan      html  css  js  c++  java
  • cocos2d-js 调试办法 断点调试 Android真机调试

    一 使用浏览器chrome打开程序,进行调试。跟普通js程序一样。

      • 要么自行搭建服务器,利用python脚本,或者用其他服务器程序(LAMP或XAMPP)。然后用浏览器打开服务器地址。
      • 要么直接使用cocos提供好的命令行:cocos run –p web

    浏览器调试好处是,方便,对于小程序或者非native代码是非常有意义的。但部署到真机后遇到的问题,这就无法解决了,而且一些native代码也无法调试。

    二 使用firefox远程调试。

    因为cocos2d-js使用spidermonkey作为js解析引擎,这个玩意就是mozilla派的,所以用firefox做远程调试。题外话。。。这让firefox在chrome如日中天的年代又找到了点存在感啊~~~真怀念。

    可以参考大牛的文章:

    http://goldlion.blog.51cto.com/4127613/1359572   不过大牛这里的配图有个缺陷,连接手机的地址没有说明。127.0.0.1是用本机模拟器运行时才用到的,如果是真机,必须是手机的网络地址。这可以让开发机和手机在同一个wifi网络中,然后到路由器里边找找手机的ip,也可以用开发机ping一下。

    调试步骤:

    1 firefox 新版(测试在V27)

    2 打开cocos2d程序的debug

                   在AppDelegate.cpp(在framework里边),改写AppDelegate::applicationDidFinishLaunching()函数,在sc->start()后面加入sc->enableDebugger()的调用

    bool AppDelegate::applicationDidFinishLaunching()
    
    {
    
    // initialize director
    
    Director *director = Director::getInstance();
    
    director->setOpenGLView(EGLView::getInstance());
    
    
    
    // turn on display FPS
    
    director->setDisplayStats(true);
    
    
    
    // set FPS. the default value is 1.0/60 if you don't call this
    
    director->setAnimationInterval(1.0 / 60);
    
    
    
    ScriptingCore* sc = ScriptingCore::getInstance();
    
    sc->addRegisterCallback(register_all_cocos2dx);
    
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    
    sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
    
    sc->addRegisterCallback(jsb_register_chipmunk);
    
    sc->addRegisterCallback(JSB_register_opengl);
    
    sc->addRegisterCallback(jsb_register_system);
    
    sc->start();
    
    
    
    #if defined(COCOS2D_DEBUG) && (COCOS2D_DEBUG > 0)
    
    sc->enableDebugger();
    
    #endif
    
    
    
    
    
    ScriptEngineProtocol *engine = ScriptingCore::getInstance();
    
    ScriptEngineManager::getInstance()->setScriptEngine(engine);
    
    ScriptingCore::getInstance()->runScript("cocos2d-jsb.js");
    
    
    
    return true;
    
    }

    3 编译运行 cocos run –p android

    4 firefox连接手机

    在FireFox中,连接功能的菜单项缺省是被隐藏的,我们需要改一下浏览器配置。

    如下操作

    wKiom1MAi-XQnsrdAAG9YOUv1Ng417.jpg

    wKioL1MAj_nAQioRAALzL4N7Fhw289.jpg

    这样菜单项就显示出来了,然后。

    wKiom1MAi-bj7diJAAHJCmkGnwU907.jpg

    然后,我们把调试器和设备连接起来:(地址填手机的网络地址,图中127.0.0.1是因为模拟器运行;端口必须是5086

    wKioL1MAj1bhbHAiAAMDi35HT_k909.jpg

    wKioL1MAkFexa4djAAL0rsO9pM0445.jpg

    弹出一个新窗口,表示连接成功。基本1s内就连接成功了,如果不成功,再检查一下cocos程序是否在运行,或者手机ip地址是否正确,或者开发机和手机是否在同一个子网。

    wKiom1MAkMOC_zspAAEi4t7DzOw568.jpg

    5 开始调试

    点debugger调试器开始调试。

    wKiom1MAkaLSDMyBAAZQR9pby-0371.jpg

    这个方法也有一定缺陷,也就是必须在cocos程序启动后才能调试。启动过程中做的事情,就不好捕捉了。。。这时候需要用cc.log配合一下了。具体方法请参考前一篇日志http://www.cnblogs.com/kenkofox/p/3906562.html

  • 相关阅读:
    mysql 查询某年某月数据~(如果数据表用时间戳)
    mongo_4.25 find() hasNext() next()
    在YII框架中有2中方法创建对象:
    bootsrap[$data]
    date
    cookie
    JavaScript shell, 可以用到 JS 的特性, forEach
    在 Yii框架中使用session 的笔记:
    mysql查询今天、昨天、7天、近30天、本月、上一月 数据
    Python 自定义异常练习
  • 原文地址:https://www.cnblogs.com/kenkofox/p/3906604.html
Copyright © 2011-2022 走看看