Android Studio附加到进程未找到原生符号

nnvyjq4y  于 2023-10-23  发布在  Android
关注(0)|答案(3)|浏览(130)

我已经按照setting up a CMake project上的Android开发者页面上的步骤与一些本机代码进行了交互。当我使用本机(dual)调试器附加到一个正在运行的进程时,
注意!未找到符号目录-请检查您的本地调试配置
在调试窗口输出中,我的断点永远不会被命中。如果我创建一个运行配置并启动它从Android Studio调试(如here所示),它会正确找到符号,调试器会命中我的断点。但是从运行配置启动调试会比较慢,而且有时候我只想附加到一个已经运行的进程。
在Android Studio 3.3中,当附加到正在运行的进程时,是否有方法指定原生符号目录?在这种情况下,活动运行配置似乎不适用。

5m1hhzi4

5m1hhzi41#

首先,确保您的项目对于Build和Release构建类型都是可调试的。即,检查以下标志是否设置为true:

release {
    debuggable true
}

debug {
    debuggable true
}

然后,对于C和C++项目,您可以添加符号目录,以及LLDB启动和附加后命令,在编译器选项卡中。要执行此操作,请使用类似于以下内容的按钮:

如果您想添加符号文件以向调试器提供在Android Studio外部生成的C或C++信息,则可以添加一个或多个目录,如上所示。
在Android Studio运行插件中的插件标签中查看更多内容。
而且,还检查Attach native debug symbols,这可能更适合您的情况。

kb5ga3dv

kb5ga3dv2#

我发现的一个解决方案是通过LLDB控制台添加符号。重新启动正在运行的调试器并切换到LLDB选项卡:

(lldb) image list
       <list of symbol images already loaded>
(lldb) image add "<path>\build\intermediates\cmake\debug\obj\armeabi-v7a\libmylib.so"

这仍然使我在每次调试时都要进行大量的手动配置。我更喜欢一种在附加到现有进程时控制默认行为的方法。

yptwkmov

yptwkmov3#

Android Studio海豚Gradle version 8插件gradle version 7.3.1
1.转到:{应用程序文件夹}/app/build/intermediates/merged_native_libs/release/out/lib
1.选择目录中的所有文件夹并创建一个压缩文件夹。
1.将压缩文件夹上传到folders to compress playstore中的应用程序包。

相关问题