【问题标题】:Does Android Studio support JNI debugging?Android Studio 是否支持 JNI 调试?
【发布时间】:2015-10-04 08:43:02
【问题描述】:

我想调试用 C 编写的代码。目前,Android Studio 1.2.2 似乎不支持 JNI 调试。 Android Studio 1.3 RC 1 版本是否支持作为 Java 调试器单步执行?

【问题讨论】:

  • 我认为 Android Studio 目前不支持此功能。您将不得不使用 gdb。

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


【解决方案1】:

Android Studio 1.3 RC 1 首次支持 JNI 调试。见here

要开始使用此功能,请转至add native code

使用新的 Android Studio 1.3 预览版 C++ 集成检查 this repository 以获取 Android NDK 示例。

【讨论】:

  • 不要遵循上面列出的 Android NDK 预览版。 Google 已决定停止进行 Gradle 实验性构建。 CMake 是新方法,这是过时的信息。
【解决方案2】:

支持,但有限制。

限制

首先,Android NDK 支持仅适用于 Android 的新实验性 Gradle 插件(这又需要 Gradle 2.5)。

虽然新的 gradle 插件提供了一些重大的性能改进(以及 Android NDK 构建支持),但请注意,它还需要更改构建文件“DSL”(您的构建在 build.gradle 文件中的描述方式。)不是您只需要修改 build.gradle 文件(我们希望在插件从实验性转为稳定之前自动化这个过程),但我们预计会在此过程中进行一些额外的不兼容更改。

其次,还要注意 Android Studio 尚未更新以完全处理实验性插件。这意味着,例如项目结构对话框和自动更新构建数据的各种快速修复程序无法正常工作。您需要手动编辑 build.gradle 文件来配置您的项目。再举一个例子,更新构建文件的各种模板(例如新模块)尚未更新。

最后,这个版本中还有一些已知的错误;当使用 LLDB 断点进行调试时,在 Windows 上并不总是有效;如果遇到这种情况,您可以切换到 GDB 调试作为临时解决方法。

来源:http://tools.android.com/tech-docs/android-ndk-preview

【讨论】:

    【解决方案3】:

    如果您的原生代码被包装成一个库,您需要将此部分添加到您的应用的 gradle:

    model {
        android.sources {
            main {
                jniLibs {
                    dependencies {
                        project ":mynativelib" buildType "debug"
                    }
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2013-05-10
      • 2023-03-23
      • 1970-01-01
      • 2016-04-15
      • 2019-05-12
      • 2015-10-10
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多