好了,问题很简单,我想在实际的手机上调试用Java和C混合编写的C部分代码(与模拟器相对)通过Visual Studio 2022运行Android版本13。手机处于开发者模式,通过USB电缆连接,并且永久信任PC。C代码是为Visual Studio编写的,无法通过Android Studio进行调试。
我只在C代码中设置了断点,并将Visual Studio设置为调试ARM 64版本的应用程序。
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版本,它与手机上的版本相匹配。我完全不知道如何做到这一点。
1条答案
按热度按时间v09wglhw1#
好吧,解决方案是那些“这很奇怪!”的时刻之一。Visual Studio必须编译到Android Studio中Java端支持的最低支持API,否则整个事情就会崩溃。我还发现我不能同时运行Android Studio和Visual Studio,即使它们没有做任何事情。这会导致Visual Studio中的调试器卡住。
我不知道这是这个软件独有的问题,还是试图将Android Studio和Visual Studio耦合时的常见问题。