我正在使用 Visual Studio,它的调试机制对我来说非常有用。一个项目中有很多头文件和 C 文件,只需一个简单的 F10 就可以带我从 main() 函数的开头浏览一遍,以便我可以看到正在执行的代码的顺序。
现在我跳进 Android Studio 并开始使用 NDK、JNI 的项目(例如该项目: https://github.com/googlesamples/android-ndk/tree/master/gles3jni ),这让我很困惑,因为有很多 .java 文件和其他 C++ ( native 代码)文件,我不知道首先执行哪个文件中的哪些代码以及它如何继续。
我的问题是:我正在寻找一种从头开始在 Android Studio 中逐行调试以查看其工作流程的方法,就像 Visual Studio 的做法一样,但我从搜索中得到的只是如何调试时从断点开始。
我尝试将断点放在启动器事件的 onCreate()
方法中,并使用 F8
来Step Over
和 F7
到 Step Into
但它没有按我的预期工作。它一直带我到父类(super class) Activity.java
和 GLSurafaceView.java
,而不是带我到 C++ 代码。 Android Studio 有没有办法做到这一点以及如何做到这一点?
我已经尝试过其他项目,但问题仍然存在。希望有人能帮忙。
最佳答案
这不会发生。您的应用程序(Java 样板代码)设置为响应用户使用该应用程序以及安装该应用程序的设备时发生的许多系统事件。如果你的c++代码是一段单一的简单算法,你可以在开始时设置断点,然后真正一步一步地执行。但对于 Android Studio,即使这个过程也不像 Vusial Studio 那么容易。首先,它总是远程调试,依赖于微妙的通信协议(protocol)。
也就是说,您可以尝试将 Microsoft Visual Studio 设置为调试 native Android 代码的 IDE。它出奇地强大,而且您可能更熟悉。
关于android-studio - 如何逐行调试Android Studio项目(使用NDK和JNI)以查看工作流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42358194/