赞
踩
自己使用的华为手机,unity版本是2020.2.3f1c1,然后是用USB数据线连接的方式进行调试的,这里记录一下整个过程,好像还有wifi连接的方式,暂时不去想。
USB线插上电脑和手机,手机上的usb连接选项选择”传输文件”,找到”设置”->”关于手机”,多次点击版本号即可打开开发者模式,再返回”设置”,找到”系统和更新”,找到”开发人员选项”,进去后打开”开发人员选项”和”USB调试”。
Unity要切换到安卓平台,勾选必要的选项。
接着要用cd命令定位到安卓ADK的platform-tools目录下,默认用unityHub安装的安卓模块的话,那就是下面路径:
C:\Program Files\Unity\Hub\Editor\2020.2.3f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools
windows+R打开cmd,默认就是c盘,不用切换盘符,直接在cmd中输入cd 加上面的路径,注意cd后有个空格。这目录下有adb,可以使用adb命令adb devices查看手机是否连上了。在这之前要先关闭电脑的防火墙,通过任务面板找到防火墙关闭即可,什么360软件的也最好退出一下。
如果adb命令不正常,看这篇文章:Unity3D开发技术Android apk调试 - 简书 ,一般就是先关闭adb kill-server,再开启adb start-server。
接着开启tcp连接,输入下面的命令:adb forward tcp:34999 localabstract:Unity-com.ygq.Archer,这里的数字写什么取决于你的unity的profiler中显示的是多少。最后的Unity-后面写自己的包名。
当profiler中的playMode下出现了两个34999时连接成功,可以build and run真机调试了。RunDevice这里改成自己的手机设备。
为了能在vs里选择上手机进行调试,需要如下操作加入安卓sdk的目录,Copy Path复制过去就行
每次手机上退出程序后都需要重新"附加unity调试程序"
遇到问题:
---> protobuf_net.dll在手机端无法编码解码
解决:换成老师MMO_Client项目里protobuf_net的源码就行了
---> 电脑端可以从本地iis服务器上下载资源,打包安卓apk后就不行。
报错:Autoconnected Player Curl error 7: Failed to connect to 192.168.31.196 port 8080:,原因是手机和电脑连的不是同一个wifi,且需要关闭电脑上的防火墙,要点确定才起效。
--->报错:Autoconnected Player DllNotFoundException: Unable to load DLL 'xlua': The specified module could not be found.
原因:丢失对应的dll文件,看了一下项目的Plugins的Android目录下,什么文件都没有
解决办法:重新下载xlua,然后替换Plugins文件夹
---> 报错:Autoconnected Player Could not produce class with ID 64,65,81,143等
原因:这是因为unity裁剪引擎代码的时候,把ID为64等的类代码给裁剪掉了,导致运行的时候,无法找到。关于裁剪代码的设置在Build Settings->Player Settings->Player->Managed Stripping Level
解决办法:在项目的Assets目录下新建一个名为link.xml的文件,把缺失ID对应的类库添加到link.xml文件中重新打包问题就解决了。
官方文档id对应的类名:Unity - Manual: YAML Class ID Reference
--->报错:Autoconnected Player LuaException: xlua/util.lua:45: cannot set allowSceneActivation, no such field,像这种系统类的函数和变量无法访问的情况,是系统对代码裁剪了,其它的还有NavMeshAgent、NavMeshSurface、Animation、AnimationEvent、Application等
解决办法:在link.xml文件中添加对应的类
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。