我正在尝试使用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中的其他插件/设置中。
这已经解决了,但现在我又遇到了另一个问题。断点不起作用,但我会将其保留给另一个问题。
答案 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 后修复。