当前位置:   article > 正文

Unity真机调试以及遇到的坑_unity 安卓usb调试

unity 安卓usb调试

        自己使用的华为手机,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调试程序"

  1. 接着在profiler的PlayMode中选择自己的手机,然后点击”Build and Run”就可以进行真机调试了。
  2. 为了方便调试,一开始就在vs编辑器或者idea编辑器中给c#和lua代码打好断点。

遇到问题:

        ---> 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文件中添加对应的类

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/1007676
推荐阅读
相关标签
  

闽ICP备14008679号