web-dev-qa-db-ja.com

警告:「Android.injected.build.abi」のgradleフラグによって設定されたABI [armeabi-v7a、armeabi]には、このプロジェクトの対象ではない「ARMEABI」が含まれていました

前回、Android St​​udioでNDKバージョンを最新バージョンにアップグレードした後、この問題が発生しました。これを解決する解決策も見つけました。誰かがこの問題を抱えている場合、それがあなたにとって最良の質問と回答であることを願っています。私の答えを確認してください。

19
Chivorn

NDKリビジョン16の リリースノートはこちら を読んで解決策を見つけました。

  1. Application.mkでプロジェクトを設定する場合、次をApplication.mkに追加するだけですファイル:

    APP_STL := c++_shared
    
  2. Gradle経由でCMakeを使用している場合は、build.gradleに次を追加します。

    externalNativeBuild {
        cmake {
            cppFlags ""
            arguments "-DANDROID_STL=c++_shared"
        }
    }
    

新しいリリースとメモを最新の状態に保つには、この NDK改訂履歴 に従って新しい変更を適用してください。

問題が解決することを願っています。

18
Chivorn

Android documentation によると、これは既知の問題であり、GradleプラグインにはデフォルトでサポートされていないABIがまだ含まれているためです。 armbeabiはNDKr16で廃止され、r17で削除されたため、警告が出されました。修正するには、サポートされているアーキテクチャをsplits.abiの下にリストしてください:

...
splits {
    abi {
        ...
        reset()
        include "x86", "armeabi-v7a", ...
    }
}
5
Filipe Oliveira

同じ問題を取得し、以下のセットアップを追加してモジュールbuild.gradleファイルを変更することで修正しました。

Android {
    ...
    splits {
        abi {
            enable true
            reset()
            include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for
            universalApk true //generate an additional APK that contains all the ABIs
        }
    }

    project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9]

    Android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.versionCodeOverride =
                   project.ext.versionCodes.get(output.getFilter(com.Android.build.OutputFile.ABI), 0) * 1000000 + Android.defaultConfig.versionCode
        }
    }
}

ご参考までに、幸運を祈ります。

2
ffhorse