尝试调试NDK时无法检测应用程序ABI

时间:2012-10-04 18:04:58

标签: android debugging android-ndk

我正在尝试使用Eclipse上的ADT 20.0.3使用本机代码调试Android应用程序,它给了我这个错误:

[2012-10-04 12:09:12 - ndk_android] Unknown Application ABI: 
[2012-10-04 12:09:12 - ndk_android] 
[2012-10-04 12:09:12 - ndk_android] Unable to detect application ABI's

jni文件构建正常,我可以使用本机代码运行应用程序。

我的构建文件Application.mk如下所示:

APP_OPTIM        := debug
APP_ABI := armeabi armeabi-v7a
APP_STL := gnustl_static

LOCAL_LDLIBS := $(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_static.a

有谁知道这个错误的原因是什么?有没有人使用本机调试来使用ADT 20?

我在这里关注指南:http://tools.android.com/recent/usingthendkplugin

修改

清理并删除临时文件/文件夹/设置后,我仍然遇到同样的错误。然后我安装了一个干净的Eclipse。安装了CDT,然后安装了ADT,这似乎解决了这个问题。我相信问题出在Sequoyah或Eclipse中的其他插件/设置中。

这已经解决了,但现在我又遇到了另一个问题。断点不起作用,但我会将其保留给另一个问题。

5 个答案:

答案 0 :(得分:11)

转到首选项 - > Android - > NDK。您为此设置了正确的路径,它将起作用。 这样对我有用。

答案 1 :(得分:3)

我认为问题出在Sequoyah或Eclipse中的其他插件/设置中。我安装了一个干净的Eclipse。安装了CDT,然后安装了ADT,这似乎解决了这个问题。

答案 2 :(得分:1)

尝试清理OBJ和libs目录,并只构建一个ABI。例如,在 NDK_DEBUG = 1

旁边添加 APP_ABI = armeabi

答案 3 :(得分:0)

我通过在Application.mk文件中添加APP_PLATFORM条目来解决问题,并确保清单文件中提到的相同的min sdk版本。

例如,就我而言, APP_PLATFORM:= 21已添加到Application.mk文件中  添加到清单文件中。

此外,您需要在jni函数定义中保留断点而不是在java端的jni本机函数声明。

希望它有所帮助。

答案 4 :(得分:0)

使用 NDK r16b 时出现此错误,切换为 r10e 后修复。