关于如何在VisualStudio上仿真调试安卓的U3D应⽤
  正巧最近需要开发⼀个安卓⼿机上的Unity3D游戏功能,想着既然要开发么,当然需要调试。本来的话⼀些基础功能是不需要使⽤仿真模拟器,直接在U3D的开发编辑器上就能调试,不过有⼀些安卓上才能执⾏,⽐如
AndroidJavaClass jc = new AndroidJavaClass("");
 这种代码如果直接在U3D的开发编辑器上调试,直接就会返回
因此,我们需要在实体机(安卓⼿机)或者模拟器上调试才能正常执⾏。
以下全都是我这台电脑的运⾏结果,并不代表其他电脑有同样的效果
我选择在模拟器上调试,因为使⽤实体机的话,据说只能使⽤WIFI,虽然USB调试也可以,不过查了下资料,发现问题挺多的,⽽WIFI的话速度就慢很多了。
在模拟器的选择上,我⾸先选择了,Android Virtual Device(以下简称AVD),在进⾏了各种配置以后,AVD模拟的安卓U3D应⽤确实正常运⾏了,不过AVD给安卓模拟器分配的⽹络是NAT⽹络,也就是说,安卓模拟器⾥⾯跑的IP是重新分配的虚拟IP,⽽如果我们⽤127.0.0.1来attach是没法⼦访问到模拟器内部端⼝,那么办法只有⼀个,使⽤redir指令来重定向,把模拟器分配给安卓应⽤的端⼝重新分配出来给PC访问,当然,这个⽅法本⾝是没啥问题的话,可问题是
这个端⼝,在你每次启动新的调试以后,都会变化,也就是说,你每次想要调试,都要重新redir⼀个新的端⼝才⾏,这个就蛋疼了啊
要解决这个问题,我们只能把NAT⽹络改成桥接⽹络才⾏,可惜我遍AVD也不到能够把⽹络连接
⽅式改成桥接的设置,于是作罢,只能放弃AVD
后来,我把⽬光转向Visual Studio Emulator for Android,这是VS⾃带的安卓模拟器,基于Hyper-v虚拟机运⾏,在虚拟机的⽹络介质设置界⾯,可以把⽹络改成桥接模式,⾮常的Nice,可惜在我把我这边的项⽬导⼊模拟器运⾏的时候,不管怎么办,模拟器⼀定会崩溃,所以这个办法⾄少在我的电脑上只能作罢,也许你们项⽬可以⽤这个办法。
之后我就把⽬光转向国内的安卓模拟器,⽐如夜神啊,雷电啊之类的,可惜的是,这些安卓模拟器的桥接模式,都不⽀持Win10系统,⾄于要我换系统?不存在的。
之后么,使⽤了据说是最好的安卓模拟器Geometry ,确实不错,⽽且也确实⽀持修改⽹络连接⽅式为桥接,可惜不知道为啥,还是跟上⾯那个⼀样,⽆法运⾏我这边的项⽬,这次倒不是崩溃,⽽是应⽤打开全是空⽩...没办法,只能作罢,不过这个⽅法在你们的项⽬上也应该能⽤。
最后,⼀⽓之下使⽤了VirtualBox才最终解决问题,下⾯就是本⽂的正题,关于如何在Visual Studio上仿真调试安卓的U3D应⽤。
在开始之前,需要做⼀些准备功能
1.下载安卓的x86系统⽂件,可以是安装包,也可以去(/android-x86)下载别⼈
做好的成品虚拟机硬盘,推荐后者,可以少折腾,不过这⾥提供的下载包需要从⾕歌硬盘上拖下来,所以,是吧。
2.下载虚拟机,这个没啥好说的话,我⽤的是Oracle VM VirtualBox,随便百度下就有下载地址
3.安装好安卓的SDK包,我使⽤的是VS安装器提供的,也可以⽤就是了
jdk怎么使用4.如果使⽤的是VS,需要在VS上⾯安装Unity3D的拓展⽂件
上⾯最主要的功能做好以后,我们先打开虚拟机配置下
其实也没啥好说的,把系统设置为Liunx项⽬,硬盘指向下载来的vdi⽂件
然后右键项⽬-属性,在⽹络选项卡,把连接⽅式改成桥接⽹卡,然后启动虚拟机就⾏
正常启动项⽬以后,按照⼀般安卓系统的操作⽅式,记下IP,然后打开命令⾏控制器
在的所在⽬录,键⼊
adb connect IP
如果出现connected to IP,就代表本地机器和模拟器连接成功,现在就可以CMD了
接下来,把虚拟机晾⼀边(可以的话,设置⼀下让安卓系统永不休眠,不然过⼀会⼉不操作,进⼊休眠模式不好唤醒,只能重启)打开Unity3D编辑器,设置下配置
上述框红的,都是需要设置的,编辑器我使⽤VS,当然你们也可以⽤Monodevelop,编辑附加需要勾上,SDK和JDK需要⼿动指定位置,设置完毕后就可以关了
在Build设置界⾯,双击Android,然后把红框的都勾上,最后点击Build And Run
会出现⼀个让你保存apk⽂件的地址选择框,请务必保证保存APK⽂件的路径上⾯没有出现中⽂,出现
中⽂⽂字会导致APK⽆法安装到安装模拟器上.
如果上述⼯作没有做错,点击保存后,就会进⼊漫长的连接安卓设备,构建应⽤,以及发送应⽤包给安卓模拟器并⾃动安装运⾏等操作