我正在 Nexus 6P 上运行一个应用程序。但是当我使用 Android Studio 时,它显示“未检测到可调试进程”。虽然我从 logcat 收到日志消息。为什么我会遇到这个问题?
我有几个共享库 .so 文件。在启动 apk 时它告诉我调试这个 apk,我需要用这个 .so 文件添加调试符号。
如何为这个 .so 文件分配调试符号?
最佳答案
android 构建系统在这种方式上并不是很直接,部分原因是 gradle 对构建类型不强制。默认情况下,gradle 没有像 debug 和 release 这样的构建类型,android 插件是默认添加的。
cmake原生构建正确构建debug和release变体,并将它们放入最终结果APK或AAR的相应构建类型中。
默认情况下,Android Studio 会构建调试版本,您必须明确将其更改为没有调试版本,因此很可能您已经有了调试符号。
一件重要的事情是,出于某种原因,android 项目链接仍未修复,因此如果您有一个使用 Android 库的应用程序链接,那么实际上它将在发布时链接库,无论关于应用程序的构建类型,请参见此处:https://stackoverflow.com/a/20617949/2880011这样就可以没有来自 Android 库的 native 代码的调试符号。
对于预构建,您必须确保在 native 构建系统中链接到正确的库,因此在 cmake 中您必须相应地检测并链接它,但即便如此,APK 打包器也可能会忽略这一点并 bundle 相同的变体调试和发布。
Android Studio 也有一些本地调试的先决条件,请参阅此处:https://developer.android.com/studio/debug/index.html
关于android - 没有可调试的进程并将调试符号分配给 .so 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48387392/