“未知应用程序 ABI:”而“作为本机应用程序进行调试”

2023-11-24

我遇到这样的问题:

[2013-11-18 14:38:50 - HelloJni] Unknown Application ABI: 
[2013-11-18 14:38:50 - HelloJni] 
[2013-11-18 14:38:50 - HelloJni] Unable to detect application ABI's

这个问题发生在每个项目上,我试图“作为本机”进行调试。 我见过this, this and this主题,但这个解决方案在我的案例中没有带来任何效果。

在其他计算机或虚拟机上,同一项目使用相同的设置运行良好。

Manifest

 ...
<uses-sdk 
    android:minSdkVersion="14"
    android:targetSdkVersion="14" />
<application android:label="@string/app_name"
             android:debuggable="true">
 ...

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.cpp
include $(BUILD_SHARED_LIBRARY)

项目选项中的版本也已设置为 api-14。

我还下载了新版本的 eclipse、sdk、ndk。我清理了所有系统范围的变量和 PATH 元素。 我的机器运行在win7x64下。

附言。仅当我尝试调试、构建并运行它时才会出现问题 - 它运行得很好。

Edit1这是我的ndk-build DUMP_APP_ABI outline

c:\Users\Usr\workspace\HelloJni>D:\ndk\ndk-build.cmd DUMP_APP_ABI
armeabi

c:\Users\Usr\workspace\HelloJni>

Edit2重要的提醒。我试过跑debug as native在不同的机器上进行后续步骤git clone-> 导入到 ide -> 作为本机调试。所有机器的配置几乎相同(所有机器都通用Win7)。这个问题只出现在我的电脑上。 我尝试过不同的 IDE(eclipse+cdt、adt),已清理path,检查行结尾。 最后我决定在linux VM下开发本机部分代码。这是我的解决方案。而且我不再需要 cygwin 来交叉编译一些库。


特别是在 Windows 上,这可能是因为文件之一 (项目.属性, 应用程序.mk, Android.mk, or AndroidManifest.xml) 的行结尾错误 (CRLF)。你跑ndk-build DUMP_APP_ABI并确保输出是干净的。

全部使用$(info …) or $(__ndk_info)等应该对此目标禁用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“未知应用程序 ABI:”而“作为本机应用程序进行调试” 的相关文章