Android设备不会显示为Unity3d调试的目标

时间:2017-02-22 13:14:27

标签: android visual-studio unity3d monodevelop

首先,我非常肯定我已经正确地遵循了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应用程序作为可调试的进程(当选择它时,正在运行的应用程序所需的所有正确日志)。

我认为在调试器端排除故障是安全的,因为我试过了

  • 两台不同的开发者计算机(包含当前更新的Windows 10和没有防火墙),
  • 两个不同的网络(家庭和大学)
  • MonoDevelop,Visual Studio Community 2015,Visual Studio Professional 2017 RC(带有各自的Unity工具),
  • 重新安装Unity3d,
  • 不同的Unity3d项目(标准示例项目以及仅由文本和按钮组成的自己的最小示例),
  • 手动将android:debuggable="true"添加到项目的AndroidManifest和
  • 在Visual Studio中通过deviceip手动将调试器连接到设备:5555(在"选择Unity实例"窗口 - >输入IP)。

在设备上,我试图

  • 关闭手机再打开,
  • 关闭USB调试功能上,
  • 选择Unity应用程序作为"调试应用程序" (在开发者选项中)和启用/禁用"等待调试器" (也是开发者选项),
  • 通过USB线或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只是没有"识别" (?)它并没有切换到调试模式,所以它可以在断点处停止。有没有人知道如何强迫它这样做?

2 个答案:

答案 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实例”框中看到它,然后您可以选择它。