首先,我非常肯定我已经正确地遵循了Attaching MonoDevelop Debugger To An Android Device指南中的所有步骤(最重要的是:有"开发构建"和"脚本调试"在构建设置中启用。
建筑时然而,运行Unity Android应用程序,我的设备(三星Galaxy S5,Android 6.0.1)在MonoDevelop和Visual Studio中都不会显示为可能的调试目标。例如在Visual Studio中,单击Debug - >在"选择Unity实例"中附加Unity Debugger。打开的窗口我只看到Unity3d编辑器(机器:本地机器,类型:编辑器)。调试在Unity Editor中运行的Unity项目工作正常,只调试在物理android设备上运行的项目不起作用。 MonoDevelop也是如此。
在执行
时,我看到设备已连接并处于联机状态adb devices
我也可以通过命令行在该设备上调用adb shell命令(例如ls
)。当我打开Android Studio时,我也将设备视为Logcat的目标,甚至是刚才提到的Unity Android应用程序作为可调试的进程(当选择它时,正在运行的应用程序所需的所有正确日志)。
我认为在调试器端排除故障是安全的,因为我试过了
android:debuggable="true"
添加到项目的AndroidManifest和在设备上,我试图
adb connect deviceip:5555
和我不知道还有什么可以尝试。我很确定它是设备上的东西。之前已经工作了,但是我不知道从那以后发生了什么变化。任何提示都表示赞赏。
修改
好的,所以我取得了一些进展。当我检查应用程序的logcat输出时,我找到了诸如
之类的行Waiting for connection from host on [192.168.2.110:55416]...
(。2.110是设备的IP) 所以我手动输入了IP& Visual Studio中的端口"选择Unity实例"窗口 - >输入IP ,之后,logcat读取
PlayerConnection accepted from [192.168.2.115] handle:0x1c
(。2.115是我的开发者机器) 所以连接就是。 Visual Studio只是没有"识别" (?)它并没有切换到调试模式,所以它可以在断点处停止。有没有人知道如何强迫它这样做?
答案 0 :(得分:4)
嗯,不是真正的答案,但毕竟我找到了一种方法来调试它。在所有logcat输出中,我也发现了这一行:
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,defer=y,address=0.0.0.0:56785
获取该端口(和实际设备IP)并在"选择Unity实例"中选择在Visual Studio中输入它窗口 - >输入IP,调试器最终连接。
问题是,每次运行应用程序时都会更改端口,所以为了调试它,我总是要查找它。另外(完全可能是一个不同的问题),Debug.Log或Console.WriteLine的输出没有被调试器捕获。现在读取日志的唯一方法是在AndroidStudio中。
所以是的,问题仍然存在,设备如何在Visual Studio 中的选择Unity实例窗口中显示为AndroidPlayer(或者根据放在MonoDevelop)?
答案 1 :(得分:1)
如果您的Android设备连接到wifi,它会显示。当应用程序开始播放时,您可以在“选择Unity实例”框中看到它,然后您可以选择它。