ADB forward
常见的方法是使用adb forward对电脑的端口跟手机进行转发
adb forward --list
adb forward tcp:34998 localabstract:Unity-com.xxx.xxx
也试过34999端口号,都没有啥作用
ADB reverse
使用unity build run发现控制台会打印一个信息
adb.exe -s “MDX0220328005102” reverse “tcp:34998” “tcp:34999”
“MDX0220328005102”是对应自己的手机adb devices信息
在adb shell里使用命令netstat -a|grep 3499
发现手机上确实有这个端口在监听
tcp6 0 0 [::]:34998 [::] LISTEN
在adb中手动执行这个命令显示成功了但是似乎也没有什么作用,会提示Connection is no longer valid. Calling auto disconnect.
在unity profiler菜单中选择时确实是使用adb 127.0.0.1:34999去连接手机的,这个命令理论上会去把34999端口跟手机34998建立连接
其他profiler菜单直接输入ip 127.0.0.1
这个默认会从55000端口尝试,使用adb forward tcp:55000 localabstract:Unity-com.xxx.xxx 似乎连接成功过但是没有数据
尝试同时使用adb forward跟adb reverse
adb forward --remove-all之后
使用adb forward tcp:55000 localabstract:Unity-com.xxx.xxx
adb reverse–remove-all之后
adb.exe -s “MDX0220328005102” reverse “tcp:34998” “tcp:55000”
在手机上adb shell中netstat -a|grep 3499
结果发现建立了非常多的tcp连接 但是unity profiler并没有真正连接成功
尝试使用一些新的unity版本 2021.3.16
遇到问题,编译apk时候会报gradle的错误,网上有种说法是设置key store,另外一种方法是改gradle配置文件url,这两种方法都没尝试成功
尝试使用旧版本unityhub + 脚本设置proxy 也还没成功
有帖子说是unity gradle版本和gradle插件版本不匹配 这个还没尝试更换版本
编译报错时候提示 Failed to call Unity ID to get auth code. 可能跟账号登陆和鉴权有关??
似乎是域名解析的问题 dl.google.com域名解析不了 见b站这个视频https://www.bilibili.com/video/av638396132/?vd_source=fb3f4081db0c360df784eca453f79126
试了这个方法 发现dl.google.com ip一直在变化 还是编译失败
有一些warning :repositories.cfg could not be loaded.
Failed to download any source lists!
没想到换了台电脑编译会一直失败,公司的网络又很玄,连自己热点也一样报错,暂时放弃编译apk连,试试unity remote看能用不
猜想
之前成功过的时候apk运行确实有development的水印,但是最近编译apk虽然把development build勾上,但实际运行并没有水印,而且使用unity upr工具profile一直没有数据 frame count为0,估计apk确实不是development模式??使用另外一个profiler工具,发现adb forward中的端口在adb shell netstat -t中能发现 localabstract对应的端口名字在netstat -a|grep xxx中也能找到,而unity profiler对应的localabstract找不到,所以问题的根源是编译出来的apk并没有启动对应的端口等unity来连接并发送数据?
解决
编译developement版本时候勾选了 development build,auto connect profilter,script debugging 三个选项,upr工具一直no frame data,去掉第二个选项,upr正常了
同样去掉第二个选项勾选之后 用forwad 55000那个命令 unity profiler可以成功连接了,虽然比较蛋疼的是我这编译时候gradle一直会报错,dl.google.com在我这ip一直变来变去文章来源:https://www.toymoban.com/news/detail-450645.html
Unity编译问题
unity编译gradle老是失败,应该是gradle中配置的maven仓库jcenter跟google访问不了,需要配置公司能访问的仓库,可以通过修改baseProjectTemplate.gradle这个文件来解决,访问不了的url资源可以在浏览器中尝试下看是否能访问,有时候http访问不了,需要改为https来访问, https有时候gradle会报错unable to find valid certification path to requested target,这个是由于java没有安装证书,需要用keytool -keystore cacerts -importcert -alias xxxx -file xxxx.cer -storepass changeit -noprompt 这种命令来安装证书,或者改回http选择合适的仓库来访问,或者高级一点自制一个本地离线的maven仓库,参考这个帖子https://www.pudn.com/news/6228e3479ddf223e1ad3306c.html#UnityGradle_276文章来源地址https://www.toymoban.com/news/detail-450645.html
到了这里,关于一次不成功的unity profiler链接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!