cocos2d-x android 调试

来源:互联网 发布:詹姆斯07年总决赛数据 编辑:程序博客网 时间:2024/05/14 18:35

搭建2dx的android开发环境官网有教程(http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Chapter_1_-_How_to_Create_a_New_cocos2d-x_project_on_multi-platforms),2dx的中文网站也有对应的翻译(http://cocos2d.cocoachina.com/resource/show?nid=60),在此不作赘述。


DDMS调试

这里要记录的问题是,如何在virtualbox的linux系统里面用eclipse的DDMS做2dx的android项目调试。至于为什么要在linux中做eclipse调试,这是我个人的历史遗留问题:C++我习惯在windows下用VS开发,而windows下的linux模拟环境cygwin又是我很讨厌的(印象中09年的时候装过一次,巨麻烦),所以我在windows下用VS编码和调试,通过后把代码copy到linux机器的android项目中编译出apk文件。


今天新买的adroid测试机终于到了,从两年前的htc hero(android 2.1)升级到华为android 4.1,感觉太爽了,迫不及待的装上前几周用业余时间写的两个小游戏:

一个跟微信打飞机比较类似,上面掉怪物,下面打,代码自己写的,资源图片是东拼西凑来的,运行正常(apk见http://download.csdn.net/detail/xiarendeniao/6029239);

另一个是拿一个大神的代码(详见http://4137613.blog.51cto.com/4127613/761397)当教材学习并小改了一下得到的,他之前的代码在android下有些小瑕疵(左右移动有些不受控制,这个是因为手指刚触摸到屏幕时会有小距离的touchmove事件;移动节奏不太好,记得是滑动一次移一步),改掉这些的时候运行正常(apk见...);

后来我用python写了个server,并在大神的代码中用pthread开了个线程、用libcurl建立tcp长连接意图实现网络对战,这时windows下正常,android下出现了闪退情况,今天搭建DDMS调试环境也就是为了解决这个问题。

整体环境:win7宿主,virtualbox虚拟机,centos6虚拟系统

问题一.virtualbox虚拟机无法添加和识别usb设备(我的华为手机,android 4.1系统,具体错误见下图):USB device '...' with UUID {...} is busy with a previous request. Please try again later. 


参照virtualbox的官方论坛尝试了很多方法,也不清楚到底是哪个办法凑效的,个人感觉是这样的(宿主机器启动时我进入到BIOS的设置页面把USB的一个选项也disable了,不过感觉应该没什么用):

在宿主机器(Win7)的设备管理器中把手机卸载掉;

在virtualbox对应的虚拟系统的设置页面“启动USB控制器”(不“启用USB2.0(EHCI)控制器”),添加一个远程是“任何(any)”的过滤器;

启动虚拟系统后在“分配USB设备”中把对应的设备打钩,宿主机器右下角会冒泡提示“virualbox usb正在安装”和“安装完成”,然后,lsusb就可以看到设备了

[root@localhost ~]# lsusbBus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 001 Device 002: ID 058f:a014 Alcor Micro Corp.Bus 001 Device 003: ID 12d1:1052 Huawei Technologies Co., Ltd. 

问题二.ADT启动后使用DDMS检测到的设备信息是“???”

用sudo adb devices(我linux环境中的adb在/data/android/adt-bundle-linux-x86_64-20130717/sdk/platform-tools这里)可以看到权限有问题

用sudo adb kill-server 停止adb服务

接着 sudo adb start-server 重启adb服务

然后 sudo adb devices 显示出的设备名就是正常的

做上述操作的同时,我还做了驱动的处理,不清楚是两者一起起了作用还是只要其中一项就够了,懒得纠结了
驱动处理如下(参考 http://blog.csdn.net/zhenwenxian/article/details/5901350):

增加了一项配置文件,如下所示

[dongsong@localhost platform-tools]$ cat /etc/udev/rules.d/50-android.rulesSUBSYSTEM=="usb",SYSFS{"Huawei Technologies Co., Ltd."}=="12d1",MODE="0666"
sudo chmod a+rx /etc/udev/rules.d/50-android.rules

重启虚拟系统(上述参考页面里说要重启/etc/init.d/udev,然后重启adb服务就行了,可是我虚拟机没有找到/etc/init.d/udev)



eclipse连真机调试(模拟器界面全黑搞不定)

昨天(2013.11.14)琢磨出eclipse连真机调试的方法了,不用每次编译出apk,copy到真机,安装,然后用DDMS看运行信息了;

直接在eclipse下(ADT)右击项目“Debug As”-->"Android Application",然后项目会在真机上运行,eclipse的logCat会打印运行信息

参考:http://developer.android.com/tools/building/building-eclipse.html#RunningOnDeviceEclipse(Running on a device)

1.保证lsusb可以看到真机(上面有方法)

2.手机设置成USB调试模式(上面有方法)

原创粉丝点击