22

我正在尝试在 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 中的其他插件/设置上。

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

4

5 回答 5

11

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

于 2013-01-29T15:40:36.270 回答
3

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

于 2012-10-05T21:35:20.280 回答
1

尝试清理 OBJ 和 libs 目录,并且只构建一个 ABI。例如,在NDK_DEBUG =1旁边添加APP_ABI=armeabi

于 2012-10-04T20:33:45.617 回答
0

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

例如,在我的例子中,APP_PLATFORM:=21 添加到 Application.mk 文件中添加到清单文件中。

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

希望能帮助到你。

于 2015-04-24T03:55:28.143 回答
0

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

于 2018-01-24T18:39:09.007 回答