我有一个在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命令来确认调试时加载的本机库映像是未剥离的版本。但断点不会受到打击。
我的配置有什么问题?
有人可以给我一些建议吗?
谢谢!
答案 0 :(得分:1)
如果您的程序运行在预编译的代码上,您如何期望AndroidStudio达到断点?如果在Notepad ++应用程序中的源代码中放置一个断点,那将是相同的。相反,您必须告诉您的项目/代码使用源代码,而不是预编译的lib。为此,请删除所有.so文件并链接源代码,以便NDK从此处进行编译。