web-dev-qa-db-ja.com

Android NDK:非推奨のABIのアプリケーションターゲット:NDKの更新後のarmeabiエラー

昨日、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

この問題を解決する方法はわかりません。何かアドバイス?

9

私は同じ問題を抱えていて、最新の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
}
15
drruggeri

Application.mkファイルで、APP_ABI:= armeabi armeabi-v7a x86 mipsを設定してからプロジェクトを同期する必要があります。それはあなたの問題を解決するでしょう。

4
nguyen nam

APP_ABIリストからarmeabiを削除します。

ただし、ソースからわかるように、エラーではなく警告である必要があります。 ndk-buildをどのように呼び出しますか?

1
Dan Albert

それでも誰かがこの問題を抱えている場合は、順番に試してみてください。

  • ビルドフォルダーを削除してからビルド>プロジェクトのクリーン、ビルド>プロジェクトの再ビルド
  • 上記が機能しない場合は、追加します

    APP_ABI:= armeabi-v7a arm64-v8a

    application.mkファイルでアプリレベルのグラドルからリンクし(Android.mkがリンクされているように)、ビルドを再試行します

0
Irshad P I