Android NDK: цели приложений устарели ABI (s): ошибка armeabi после обновления 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.    

эта ссылка направила меня на по линии

_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 ответов


у меня была та же проблема, и я просто избегал очистки или перестройки всего проекта, пока не получил последнее обновление NDK и проблема не возникла снова.

это происходит потому, что даже после удаления целей в app/.externalNativeBuild, что относится к ним.

чтобы исправить это, я удалил приложение.mk (который я использовал для установки целей) и добавил Эти строки в приложение/сборку.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
}

В Приложении.файл mk, вы должны установить APP_ABI:= armeabi armeabi-v7a x86 mips затем синхронизируйте проект. Это решит твою проблему.


удалить armeabi из списка APP_ABI.

Как вы можете видеть из источника, оно должно быть предупреждение, а не ошибка. Как вы вызываете ndk-build?


Если у кого-то все еще есть эта проблема, вот некоторые вещи, чтобы попробовать по порядку.

  • удалить папку сборки, затем Построить > Очистить Проект, Построить > Перестроить Проект
  • Если выше не работает, добавьте

    APP_ABI:= armeabi-v7a arm64-v8a

    в приложении.Mk файл и связать его с уровня приложения gradle (так же, как Android.mk связан с) и попробуйте построить снова

  • Если ни один из выше не работает, удалить -Werror флаг с Android.МК и перестроить