android-studio - 如何逐行调试Android Studio项目(使用NDK和JNI)以查看工作流程?

标签 android-studio debugging android-ndk java-native-interface

我正在使用 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() 方法中,并使用 F8Step OverF7Step Into 但它没有按我的预期工作。它一直带我到父类(super class) Activity.javaGLSurafaceView.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/

相关文章:

android - Android Studio 中的模拟器无法启动

android - 更改android中的默认字符串xml文件

android - Firebase Android Studio 找不到 com.google.gsm :google-services:3. 0.0

iphone - 在 iOS 上跟踪崩溃

windows - 如何阻止 WinDbg 缩小窗口?

android - Flurry Android 事件不是通过 NDK 记录而是通过 java 记录

java.lang.UnsatisfiedLinkError : No implementation found (When Implement a SDK)

java - handleWindowVisibility : no activity for token android. os.BinderProxy

xcode - 使用 Xcode 同时测试多个设备(iPhone/iPad)的控制台输出

android - 构建 Android 源代码时出错