Unity Android模拟器调试

Unity项目遇到了只会在Android上出现的问题,code review再三没有找到问题,只能想到动态调试了。Unity Android的真机调试只能使用Wi-Fi调试,它要求开发机和Android设备在同一子网下,具体步骤参考Unity的官方文档《Attaching MonoDevelop Debugger To An Anroid Device》。

由于办公环境的限制,我们的开发机(台式机)无法满足与Android设备在同一子网下的真机调试条件,因此我们探索了Unity项目在Android模拟器上的调试方法。

一、、创建AVD

安装Java和Android SDK是前提,这里不做细述。Android SDK中自带了eclipse,通过eclipse里的Android Virtual Device Manager可以很方便的创建和管理AVD。

创建AVD时除了Memory Options、Internal Storage和SD Card尽可能设置大一点防止发生apk安装失败等问题以外,还需要注意以下几点:

1、Windows上RAM设置超过768M时可能会发生模拟器启动失败,这种情况只需要改小RAM即可。

2、勾选Use Host GPU选项,否则运行项目时可能会崩溃,报错:[EGL] No suitable configuration found that matches the minimum critera。

二、配置APN

通常情况下我们的模拟器需要可以联网,Android通过APN来实现设备与蜂窝移动网络的连接,这里需要通过配置APN来实现模拟器与宿主机网络的连接:

1、进入Settings->Wireless & networks->Mobile networks->Access Point Names,选择New APN。

2、Name随意填写,其它设置按下图填写。

3、打开模拟器中的浏览器访问外部web这时应该可以成功访问。

三、安装apk

生成apk时记得在Unity Build Settings中勾选Development Build和Script Debugging选项,这样的版本才能被调试。

通过adb install或者豌豆荚等工具安装apk。这里我们遇到了应用无法安装成功的问题,通过DDMS Logcat抓取日志发现返回错误码为-18,根据《Failure [INSTALL_FAILED_CONTAINER_ERROR]》我们将Unity Player Settings->Other Settings->Configuration中的Install Location由Prefer External改为Automatic后重新生成apk安装成功。

四、adb连接

运行模拟器时,模拟器窗口标题栏会显示模拟器的端口号和AVD名称,这个端口号是它的console端口号,其区间为5554-5584之间的偶数,而5555-5585之间的奇数则是对应的为adb保留的端口号。默认情况下运行第一个模拟器的console port为5554,adb port为5555,第二个模拟器的console port为5556,adb port为5557,依此类推。Console port和adb port用于下面的adb连接:

1、adb tcpip 5555将设备的adb daemon与宿主机的5555端口绑定。如果5555端口已经被占用,可以使用5555-5585之间其它的奇数。

默认情况下第一个模拟器的console port为5554,adb port为5555,因此可以跳过这步。

2、adb connect 127.0.0.1:5555这里通过网络进行adb连接,5555为上一步设置好的模拟器adb port,127.0.0.1为本机环路地址。因为模拟器的adb daemon与本机的5555端口进行了绑定,因此adb连接本机(127.0.0.1/localhost)的5555端口时就是连接了模拟器。

3、adb devices查看连接是否建立好。

五、Unity调试

运行项目后,MonoDevelopment或UnityVS的Attach窗口会出现AndroidPlayer一项,这就是我们模拟器上运行的项目了。但如果此时直接Attach会发现Attach不上,我们还需要做些配置工作。

仔细看AndroidPlayer这项会发现有unknown_sdk@10.0.2.15这样的标识,这个10.0.2.15实际上是模拟器自己定义并分配的IP,直接Attach会尝试去连接这个IP,当然无法连接到模拟器,也就无法调试项目了。好在UnityVS有两个很好的功能,一个是列出了调试项目时需要连接模拟器的端口号,即上图的56997,另一个是允许自定义输入IP和端口号来进行远程调试。

1、打开UnityVS的Attach Unity Debugger窗口,记住AndroidPlayer的端口号。

2、打开cmd,输入telnet localhost 5554来进入Android Console,5554即前面提到的模拟器的console port。

3、Android Console中输入redir add tcp:5590:56997,将模拟器56997端口重定向为宿主机的5590端口。这里的56997即第1步需要记住的端口号,5590可以设置为任意你想用的端口号。

4、在UnityVS Attach窗口点击“Input IP”,输入127.0.0.1:5590,点击“OK”将会连接到模拟器并Attach项目成功,接下来就可以体验“真机”调试了。

原文地址:http://gad.qq.com/college/articledetail/5801

转载于:https://www.cnblogs.com/cpjeff/p/7170865.html

(转载)Unity真机调试相关推荐

  1. android studio 远程调试,Unity3D学习笔记——Android远程真机调试(Unity Remote)

    前言:当使用Unity开发移动端的游戏,特别是使用到手机的传感器,如重力感应等,调试的时候,很麻烦, 因为每次都需要编译成APK后安装到手机中测试,而Unity Remote便能很好的解决这个问题,U ...

  2. 【转载】Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略

    原创文章,欢迎分享:未经许可,不得转载:版权所有,侵权必究 开发环境使用的是目前为止最新的稳定版软件:Mac OS X Lion 10.7 + Xcode 4.1 目前Xcode 4.2 Previe ...

  3. IOS 7 Xcode 5 免IDP证书 真机调试(转载)

    最近转开发了,真的很久没有更新博客了,今天有空写一篇吧. 今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调 ...

  4. xcode上真机调试iphone4s出现“There was an internal API error.”解决方案

    xcode7更新之后使用真机调试,在IOS8的一台Iphone5手机上面没什么问题,IOS8的一台iphone6也没问题.但是在IOS6的一台Iphone4s和 IOS7的ipad air2上面在最后 ...

  5. ios--用证书进行真机调试(转)

    测试环境:Xcdoe4.5, ML10.8 转自"http://mobile.51cto.com/iphone-276988.htm" Xcode搭建真机调试环境 图文实例 201 ...

  6. wp7 关于真机调试,部署注意事项

    关于真机调试,部署注意事项 1.真机调试机器需要解锁或者越狱 .(推荐越狱,解锁需要app hub账户,需要提交微软审核,步骤麻烦) 2.真机调试 机器不能锁屏 3.真机调试必须安装启动zune so ...

  7. Mac OS X 10.10, Eclipse+ADT真机调试代码时,Device Chooser中不显示真机的解决方式

    Mac OS X 10.10的环境下.Eclipse+ADT,进行真机调试时,会出现一个问题. Device Chooser对话框里不显示真机设备,仅仅有又一次插拔数据线才干够. 经过測试.有两个暂时 ...

  8. ios程序连接真机调试

    对于真机调试,首先要在苹果网站上注册APP ID,以及购买iPhone Develop Program(iDP) 开发者授权,99美元.然后要创建证书请求CSR,创建步骤如下: 设置OCSP和CRL为 ...

  9. iOS 12 真机调试 Xcode 9 提示 Could not locate device support files.

    升级 iOS 12 之后,使用 Xcode 9 真机调试会提示错误: Could not locate device support files. This iPhone 6 Plus is runn ...

最新文章

  1. 人生的路上,要懂得坚强
  2. 转:在windows通过Xrdp软件远程桌面连接Fedora
  3. RecycleView 缓存原理解析
  4. Gemfile.lock应该包含在.gitignore中吗?
  5. Hyperopt 入门指南
  6. 为什么使用ES6生成器
  7. 程序员幽默:伤不起,我就是这样的程序员
  8. docker0: iptables: No chain/target/match by that name.
  9. 使用Visual Studio Code调试.net控制台应用程序的方法
  10. 操作系统原理基础知识
  11. 抖音便捷小空调特效 html+css+js
  12. php c端,tob端和toc端是什么意思
  13. JavaScript网页特效编程百宝箱pdf
  14. 见过世面的程序员,到底有多厉害
  15. 操作系统之——磁盘存储器管理
  16. (四)AR Foundation实现坐标、图片检测(上)
  17. OSIRISV4.1使用教程(最新可用版)
  18. sicily 4379 bicoloring
  19. 计算几何基础——【点积和叉积的用处】
  20. 【ROS-Navigation】—— Astar路径规划算法解析

热门文章

  1. 2016 中国互联网仿冒态势分析报告
  2. 【js与jquery】三级联动菜单的制作
  3. JAVA 13 (集合框架)
  4. PowerDesigner(16.1)使用
  5. raspbian wifi设置
  6. 初学者的编程自学指南
  7. vb6源码 ymodem_任意字符的ASCII码转换工具,基于VB6的源代码VB字符串处理源码下载...
  8. html 页间传送数据,js 不同页面间传递值并取值,html不同页面间数据传递
  9. java监控网卡_VC++监控网卡状态
  10. Nacos配置管理-微服务配置拉取