我在Nexus 6P上运行了一个应用程序。但是当我使用Android Studio时,它显示“未检测到可调试进程”。虽然我从logcat获取日志消息。为什么我会遇到这个问题?
我的共享库.so文件很少。在启动apk时它告诉我调试这个apk,我需要用这个.so文件添加调试符号。
如何使用此.so文件分配调试符号?
答案 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