Android NDK:不推荐使用的应用程序目标ABI:更新NDK后的armeabi错误

时间:2017-11-15 08:51:31

标签: java android android-ndk

昨天,在更新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

我不知道,如何解决这个问题。 有什么建议吗?

4 个答案:

答案 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 标记并重建