如何使用Android Studio 2.2.3调试外部本机库的C ++源代码?

时间:2017-03-04 16:52:36

标签: c++ android-studio debugging android-ndk java-native-interface

我有一个在Windows 10下由Android Studio 2.2.3创建的android项目,该项目通过其包装jar(通过JNI)使用本机库。本地库是由qmake在Android Studio之外构建的,它将在android NDK r13b中使用GCC 4.9来生成本机共享库,代码使用-g选项进行编译。

要使用这个本机库,我将包装jar放在<proj_path>/app/libs目录下,而<proj_path>/app/src/main/jniLibs/armeabi-v7a下的本机库,一切正常,我可以从java代码成功调用本机库中实现的方法

问题是,当我调试这个android项目时,我在cpp文件中设置的断点没有生效,请注意cpp文件不在android项目的源代码树中,我只是打开它安卓工作室。我已经安装了最新的LLDB并且我使用'Hybrid'调试类型启动调试,我还使用'image list'LLDB命令来确认调试时加载的本机库映像是未剥离的版本。但断点不会受到打击。

我的配置有什么问题?

有人可以给我一些建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您的程序运行在预编译的代码上,您如何期望AndroidStudio达到断点?如果在Notepad ++应用程序中的源代码中放置一个断点,那将是相同的。相反,您必须告诉您的项目/代码使用源代码,而不是预编译的lib。为此,请删除所有.so文件并链接源代码,以便NDK从此处进行编译。