没有可调试的进程并将调试符号分配给.so文件

时间:2018-01-22 17:45:47

标签: android android-studio debug-symbols

我在Nexus 6P上运行了一个应用程序。但是当我使用Android Studio时,它显示“未检测到可调试进程”。虽然我从logcat获取日志消息。为什么我会遇到这个问题?

我的共享库.so文件很少。在启动apk时它告诉我调试这个apk,我需要用这个.so文件添加调试符号。

如何使用此.so文件分配调试符号?

1 个答案:

答案 0 :(得分:0)

android构建系统并不是以这种方式直接进行的,其中一部分原因是由于gradle对构建类型没有用力。默认情况下,gradle没有像debug和release这样的构建类型,android插件是默认添加它的那个。

cmake native build正确构建调试和发布变体,并将它们放入最终结果APK或AAR的相应构建类型中。

默认情况下,Android Studio构建调试版本,您必须明确地将其更改为没有调试版本,因此您可能已经拥有调试符号。

一个重要的事情是,由于某种原因,Android项目链接仍然没有修复,所以如果你有一个使用Android库然后的应用程序的链接,它将在发布中链接库,无论如何应用程序的构建类型,请参见此处:https://stackoverflow.com/a/20617949/2880011这样就可以没有来自Android库的本机代码的调试符号。

对于预编译,您必须确保在本机构建系统中链接到正确的库,因此在cmake中您必须相应地检测并链接它,但即使这样,APK包装程序也可能忽略它并捆绑相同的变体调试和发布。

Android Studio还有一些本机调试的先决条件,请参阅此处:https://developer.android.com/studio/debug/index.html