2

我在 Windows 上执行 NDK 堆栈跟踪工具时遇到问题。可能只是一个非常愚蠢的错误,所以这是我尝试的:

...\android-ndk-r8d\ndk-stack.exe -sym ".../JNITest/obj/local/x86/" -dump ".../crash.txt"

我收到的消息如下:

********** Crash dump: **********
...

Stack frame #00  eip: 30303030: Unable to open symbol file .../JNITest/obj/local/x86//☺. Error (123): Unknown error

所以这个文件夹中有一个 .so 文件应该包含符号(顺便说一句:我如何检查是否是这种情况?)

4

2 回答 2

1

当您使用 ndk-build 构建本机库时,它会创建一个.so包含所有调试信息的文件,通常在目录<proj>/obj/local/armeabi中,然后通过剥离调试符号将该文件安装到该文件中。<proj>/lib/armeabi后者被打包到 APK 中。

上面的armeabi最常用,因为那里的大多数 Android 设备都使用 ARM CPU。您的帖子指的是x86子目录。你真的在这个项目中使用了英特尔驱动的设备吗?您是否为 x86 构建了本机库?如果你这样做了,你能在你的<proj>\obj\local\x86目录中找到这个文件吗?

于 2013-03-16T19:35:55.040 回答
0

在 Windows 7 上使用 Android NDK Release 9,64 位时,我遇到了同样的 ndk-stack.exe 崩溃。更新到更新的 NDK 版本,Release 9c,64 位,问题就消失了。显然是 NDK 早期版本中的一个错误。

格雷格

于 2014-01-10T14:46:04.383 回答