Android Studio Native无法调试,Debug Type只有Java Only

引言

由于最近工作需要,需要开发Native,由于之前是Native开发小白,一切都是从零开始。开始开发后,发现无法调试,在C层打断点后,无法debug。尝试了很多办法,查阅了很多资料,都没办法解决。最终在我孜孜不倦、浪费时间一天的情况下,解决了问题。为了给后边有同样坑的同学指引,所以水一篇博客记录下问题和解决办法。

问题

环境信息

Android Studio版本:4.2.2/Fox
ndk版本:ndk.dir=/Users/cyanstone/Library/Android/sdk/ndk/21.4.7075529

现象

  1. C代码无法断点(Android Studio 4.2.2)或断点后无法debug(Android Studio Fox)


    无法断点.png
  2. 在Run/Debug Configurations里找不到Debugger选项(Run/Debug Configurations —> Debugger —> Debug type ),一度以为是Android Studio版本更新后给干掉了,因为网上可以搜到的调试C++的教程里有些已经不适用了,比如不需要下载LLDB了,NDK已经默认安装了,jniDebuggable也已经弃用。


    网络上的教程核心都是让在Debugger里进行设置.png

    我本地没有设置debugger type的选项.png
  3. 在Run->Attach Debugger to Android process里的Debug Type也只有Java Only.


    Run-Attach Debugger to Android Process里的Debug Type也只有Java Only.png

    Run-Attach Debugger to Android Process里的Debug Type也只有Java Only2.png

问题排查解决

  1. 按照官网排查了无数次,各种尝试,包括但不局限于更换不同的Android Studio、尝试不同版本的agp、尝试不同版本的ndk等等,都没解决,不过一定要先按照官网教程进行排查Android Studio官网调试教程;

2.偶然间发现自己的plugin里没有勾选ANdroid NDK Support,勾选上后,debugger菜单出现,也可以设置其他的debug type,问题解决!


ndk support.png
debugger type出现其他C的选项,候选C++相关即可调试.png
正常可以调试.png

最后想说

禁用非必要的插件是由于一两年前,抖音由于工程架构不合理导致编码和编译性能太差了,实验过把非必要插件禁用掉能改善编码体验,不过这个大家一般不会去禁用他。不过官方太坑了,关于不启用Android NDK Support插件不能调试C++这点没有任何提示,浪费了一天时间,就当我给大家铺路了~_~

你可能感兴趣的:(Android Studio Native无法调试,Debug Type只有Java Only)