昨天,在更新NDK之后我遇到了这些错误:
Error:(81) Android NDK: Application targets deprecated ABI(s): armeabi
Error:(82) Android NDK: Support for these ABIs will be removed in a
future NDK release.
这个链接指示我在行上的setup-app.mk
文件
_deprecated_abis := $(filter $(NDK_DEPRECATED_ABIS),$(NDK_APP_ABI))
ifneq ($(_deprecated_abis),)
$(call __ndk_warning,Application targets deprecated ABI(s):
$(_deprecated_abis))
$(call __ndk_warning,Support for these ABIs will be removed in a
future NDK release.)
endif
我不知道,如何解决这个问题。 有什么建议吗?
答案 0 :(得分:15)
我遇到了同样的问题,只是避免清理或重建整个项目,直到我获得最新的NDK更新并重新出现问题。
发生这种情况是因为即使删除了目标,app/.externalNativeBuild
中仍然存在引用它们的文件。
为了解决这个问题,我删除了Application.mk(我用它来设置目标)并将这些行添加到app / build.gradle
android {
defaultConfig {
// ...
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a' // 'x86', 'x86_64' may be added
}
}
// ...
task ndkClean(type: Delete) {
// remove unused archs from build cache
delete fileTree('.externalNativeBuild') {
exclude defaultConfig.ndk.abiFilters.collect { '**/' + it }
}
}
tasks.findByPath(':clean').dependsOn ndkClean
}
答案 1 :(得分:4)
在Application.mk文件中,您应该设置APP_ABI:= armeabi armeabi-v7a x86 mips 然后同步项目。它可以解决你的问题。
答案 2 :(得分:1)
从您的APP_ABI列表中删除armeabi。
正如您从源头所看到的那样,它应该是警告,而不是错误。你是如何调用ndk-build的?
答案 3 :(得分:0)
如果有人仍有此问题,请按顺序尝试以下内容。
如果以上操作不起作用,请添加
APP_ABI:= armeabi-v7a arm64-v8a
在Application.mk文件中并从应用程序级别gradle链接它(就像Android.mk链接到的那样)并再次尝试构建
如果以上都不起作用,请从Android.mk中删除 -Werror 标记并重建