Android Studio NDK 调试

本人最近在接触Android Studio,是个新手,完全不懂,发现它和eclipse还是有一些差别的。Android开发过程中要Debug,弄了好久才弄好,现在整理一下,方便以后查看。

我的IDE是Android Studio 1.5.1,NDK是 android-ndk-r10e。前面的一些配置我就不细说了,主要是针对Debug整理一下。

步骤1

打开module的build.gradle文件,在buildTypes下添加以下代码。

1
2
3
debug{
jniDebuggable true
}

步骤2

同步build.gradle文件,选择Run->Edit configurations,选择自己的app native

然后就可以在C/C++代码中设置断点了。最后Run->Debug, OK。

Note:

新版的Android Studio默认run configuration支持native debugging, 所以步骤2可以省去。

但是我在Debug时遇到了以下问题:

1
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.19' not found

这是因为,当前程序的编译器的版本是比较低,只要升级一下就可以了。可以用如下命令查看一下当前GCC版本。

1
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

在我机器上显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16

所以需要升级GCC版本。执行如下命令。

1
2
3
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install libstdc++6-4.7-dev

升级完成,再查看GCC版本

1
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

显示如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_DEBUG_MESSAGE_LENGTH

这时就可以尽情地Debug 啦~开心~~~

友情链接

Qi’s Blog