好了,这个问题很容易说明。我想通过Visual Studio 2022调试运行Android版本13的实际电话(而不是模拟器)上用Java和c++混合编写的c++部分代码。手机处于开发者模式,通过USB线连接,并永久信任PC。c++代码是为Visual Studio编写的,不能通过Android Studio进行调试。
我只在c++代码中设置了断点,并设置了Visual Studio来调试ARM64版本的应用程序。
Visual Studio正确识别手机,并在设备上启动一些东西。但是,设备显示正在等待调试器附加的消息。然后,我将Visual Studio附加到adb进程,因为我认为这是调试器。
Visual Studio连接到某些东西,因为它已经关闭并运行,但手机仍然说它正在等待调试器。
如果我从另一个方向尝试-在手机上启动应用程序并将Visual Studio附加到该进程-那么Visual Studio将在尝试进入中断状态时显示"错误"。现在调试将停止。未能为中断事件找到线程71 .">
如果在Visual Studio完成启动后,我在Android设备上点击取消,那么Visual Studio将报告"连接并恢复Android Java虚拟机失败"。这可能是因为已经连接了Java调试器,比如Eclipse。恢复Java调试器或关闭它。这个消息是相同的,无论我是否附加到adb.
我期望这两种方法中的一种可以正确启动应用程序,连接到Visual Studio,并允许我通过断点调试代码的c++部分,就像我在任何其他c++应用程序中一样。
代码都可以工作,但是我需要能够看到c++部分发生了什么,而不仅仅是Java代码。
我已经检查了正在构建的Android版本,它与手机上的版本匹配。我完全不知道该怎么做。
好的,解决方案就是其中之一"真奇怪! "的时刻。Visual Studio必须编译成Android Studio中Java端支持的最小API,否则整个事情就会崩溃。我还发现我不能同时运行Android Studio和Visual Studio,即使它们什么都没做。它会导致Visual Studio中的调试器堵塞。
我不知道这是这个软件独有的,还是在尝试将Android Studio和Visual Studio结合起来时常见的问题。