Tom*_*dek 5 android monodevelop unity-game-engine visual-studio
首先,我确信我已经正确地遵循了将 MonoDevelop 调试器附加到 Android 设备指南中的所有步骤(最重要的是:在构建设置中启用了“开发构建”和“脚本调试”)。
但是,在构建和运行 Unity Android 应用程序时,我的设备(Samsung Galaxy S5、Android 6.0.1)在 MonoDevelop 和 Visual Studio 中都没有显示为可能的调试目标。例如在 Visual Studio 中,单击 Debug -> Attach Unity Debugger 后,在打开的“Select Unity Instance”窗口中,我只看到 Unity3d 编辑器(机器:本地机器,类型:编辑器)。调试在 Unity 编辑器中运行的 Unity 项目工作正常,只有调试在物理 android 设备上运行的项目不起作用。MonoDevelop 也是如此。
执行操作时,我看到设备已连接并在线
adb devices
Run Code Online (Sandbox Code Playgroud)
我还可以ls通过命令行在该设备上调用 adb shell 命令(例如)。当我打开 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]...
Run Code Online (Sandbox Code Playgroud)
(.2.110 是设备的 IP)所以我在“选择 Unity 实例”窗口中的 Visual Studio 中手动输入该 IP 和端口- > 输入 IP,然后,logcat 读取
PlayerConnection accepted from [192.168.2.115] handle:0x1c
Run Code Online (Sandbox Code Playgroud)
(.2.115 是我的开发机器)所以连接就在那里。Visual Studio 只是不会“识别”(?)它并且不会切换到调试模式,因此它可以在断点处停止。有谁知道我如何强迫它这样做?
好吧,这不是真正的答案,但毕竟我已经找到了调试它的方法。在所有 logcat 输出中,我还发现了这一行:
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,defer=y,address=0.0.0.0:56785
Run Code Online (Sandbox Code Playgroud)
获取该端口(和实际设备 IP)并将其输入到 Visual Studio 中的“选择 Unity 实例”窗口 -> 输入 IP,调试器最终连接。
问题是,每次运行应用程序时该端口都会更改,因此为了调试它,我总是必须查找它。此外(这可能是一个完全不同的问题),调试器不会捕获 Debug.Log 或 Console.WriteLine 的输出。目前读取日志的唯一方法是在 AndroidStudio 中。
所以是的,问题仍然存在,为什么设备没有在 Visual Studio的Select Unity Instance窗口中显示为 AndroidPlayer(或 MonoDevelop 中的相应位置)?
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |