我的项目中有一个 PDFViewer 模块,具体取决于android库模块 libPDF 。本机代码包含在库模块中(在jni
文件夹中)以及相应的android代码。我正在使用Gradle实验0.3.0-alpha4(与0.2.0和0.2.1相同的问题)。来自jni
文件夹之外的库中的原生文件 - 使用android.sources
包含它们,CFlags
中包含android.ndk
的标题。该库被编译成.so文件并包含在apk中。
项目使用 PDFViewer 的默认调试本机配置进行编译和运行,调试器以警告启动:
注意!找不到符号目录 - 请检查您的原生 调试配置。
调试时,本机代码(和java代码)中没有断点。如果我暂停调试器,则执行在名为epoll_wait
的函数中。
我不知道这是否重要,但在Android Studio 1.3.2中我得到了
事件日志中的Throwable:未找到LLDB服务器
。如果我尝试使用GDB,它也会引发异常。我只建造了armaebi-v7a版本。在给定的示例中,我没有看到任何特殊的gradle代码来包含本机代码的调试信息。或者我错过了什么?
我是否需要自己从本机配置选项中添加符号目录?这些目录是什么以及如何找到它们?调试时示例示例不显示此警告,并且在其本机配置选项中没有设置符号目录。
debuggable
,jniDebuggable
,ndk.debuggable
标记设置为true,android:debuggable = true
位于清单中,CFlags += "-g"
位于ndk
块中,这些都不起作用。
有什么想法吗?提前谢谢。
修改 这是一个Github link,我写了一个示例示例来向您展示问题。如果您尝试使用本机配置调试库中的本机代码,则不会触发任何断点。
新的Gradle实验0.3.0-alpha6无法解决问题。其他人也有这个问题。 gradle插件仍然是alpha版本,因此库的原生调试仍未实现?