如何在NDK本机代码中获取断点并在Android Studio中调试本机代码?

Pre*_*mal 22 android android-ndk android-studio

我正在使用NDK开发Android应用程序.我有两个项目.一个是我的本机库,它使用NDK并生成.so文件.

我正在使用Android Studio,但是使用ndk-build禁用自动构建和启用构建.我使用的是Windows 7.

现在生成.so文件后,我复制了我的主应用程序项目中的那些,它也使用ndk-build编译JNI函数,我在其中调用我的库的函数.我希望到目前为止我很干净.如果没有,那么我会根据要求提供更多细节.

现在我正在使用Android Studio在设备中运行我的应用程序,我可以在java代码中设置断点并调试该代码,但我无法调试JNI调用以及我在单独项目中的本机代码.我需要在我的库代码中调试.有没有办法实现这个目标?

我见过VisualGDB,但付费.所以让我知道是否有任何替代方案来满足我的调试要求.我已经搜索了很多但没有得到任何具体的解决方案.

我可以看到Android Studio中的选项附加到android进程,我可以看到我的运行设备,但我不知道如何使用它,所以我可以通过本机库代码进行调试(这是在没有任何活动的单独项目中).

如果需要更多详细信息,请与我们联系

Sis*_*str 12

在Android Studio 2.0预览中,该过程有点不同(我认为更容易):

  1. 安装"LLDB":进入工具 - > Android-> SDK管理器,然后进入"SDK工具"选项卡,确保选中"LLDB"(通常在列表末尾附近)
  2. 选择一个/"Debug"变体:在AS的左下角,单击"Build Variants",默认调试变量称为"Debug"
  3. 选择本机配置:运行按钮的左侧(绿色三角形),默认本机配置称为"app-native"
  4. 设置断点
  5. 通过单击运行按钮右侧的小错误启动调试中应用程序.

如果它不起作用,请检查您的本机配置是否选择了调试类型"Hybrid":在播放按钮的右侧,单击小三角形,选择"编辑配置",选择"app-native"配置,进入在"Debugger"选项卡中选择"Debug type:Hybrid".


Nat*_*ate 4

Android Studio 1.3+ 支持本机调试。

要进行设置,请按照下列步骤操作:

  1. 修改 gradle-wrapper.properties、local.properties 以及两个 build.gradle 文件,如本指南中所示
  2. 同步等级
  3. 创建并选择新的构建配置:

    单击“运行”按钮旁边的下拉菜单)->“编辑配置”,单击加号,选择“Android Native”,填写右侧的选项(我在本机调试器选项卡中使用了 LLDB),然后就可以设置了。

  4. 在 C++ 中设置断点

  5. 点击调试按钮并耐心等待(有时调试器需要一段时间)

我已经能够使用 Android Studio 1.3(稳定通道)在 Lubuntu 14.04 下调试本机代码。尽管其他人据说在 Windows 下取得了成功,但我无法在 Windows 8.1 中进行本机调试(我已尝试使用 Android Studio 1.3、1.3.2 和 1.4 预览版 3)。

更新 Android Studio 1.4 Beta 刚刚发布。我对其进行了测试,并且能够在 Windows 8.1 上进行本机调试。