Android Studio调试Native代码时LLDB Server启动卡住求助
我之前也碰到过一模一样的卡死状况,折腾了好一阵才搞定,给你整理几个实测有效的排查和解决方向:
先排查LLDB版本兼容性
Android Studio自带的LLDB经常和版本不匹配出问题。你可以打开File > Settings > Build, Execution, Deployment > Debugger > LLDB,看看当前用的LLDB版本,建议切换到Android Studio推荐的稳定版(比如Arctic Fox及以后版本尽量用LLDB 11+)。如果版本不对,去SDK Manager > SDK Tools里找到LLDB,先取消勾选卸载,再重新勾选安装适配的最新稳定版。确认设备和调试权限没问题
先在终端跑adb devices,确保设备能被正常识别(状态显示device)。如果用的是模拟器,建议重启模拟器,或者换个x86_64的系统镜像——arm架构的镜像有时候调试Native会有奇怪的兼容性问题。另外一定要确认app的debuggable是开启的:在app模块的build.gradle里,buildTypes.debug下必须设置debuggable = true,没开这个根本没法调试Native代码。清理编译缓存,重建Native模块
编译缓存坑太多了!先点Build > Clean Project,再执行Build > Rebuild Project。如果是CMake项目,直接删掉app目录下的.cmake、obj、libs文件夹,重新生成编译文件。还要检查Native的编译配置:CMakeLists里要加set(CMAKE_BUILD_TYPE Debug),ndk-build的话就在Application.mk里写APP_OPTIM := debug——只有生成带调试符号的二进制文件,LLDB才能正常工作。调整LLDB的调试配置
打开Run/Debug Configurations,找到你的Native调试配置:- 确认调试目标是当前连接的设备/模拟器;
- 切换到Debugger标签,关掉
Auto-detect native files,手动指定Native库的路径(比如app/build/intermediates/cmake/debug/obj/armeabi-v7a/); - 勾选
Use LLDB embedded in Android Studio,别用系统自带的LLDB,避免环境冲突。
你还可以手动测试LLDB server能不能启动:用adb shell进入设备,找到/data/local/tmp/lldb-server,执行./lldb-server platform --listen *:1234 --server,如果能正常运行,说明server本身没问题,就是Android Studio的连接配置出了问题。
暂时关闭防火墙和VPN
本地防火墙或者VPN有时候会阻断Android Studio和设备之间的LLDB通信,先关掉试试,说不定卡顿问题直接就消失了。最后试试更换Android Studio版本
要是以上方法都没用,大概率是当前AS版本的bug——比如Bumblebee早期版本就有LLDB卡死的问题。可以降级到稳定的旧版本(比如Arctic Fox),或者升级到最新的稳定版,应该能解决这个问题。
内容的提问来源于stack exchange,提问作者Kot Leapold




