WARNING: ABIs [armeabi-v7a,armeabi] set by 'android.injected.build.abi' gradle flag contained 'ARMEABI' not targeted by this project

I found solution by reading on release note here for NDK revision 16.

  1. If you config your project with Application.mk just add the following to your Application.mk file:

    APP_STL := c++_shared
    
  2. If you're using CMake via Gradle, add the following to your build.gradle:

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

To keep up to date with new release and note, please follow this NDK Revision History to apply with new changed.

I hope it can fix your issue.


According to Android documentation this is a known issue, and its due to the fact that the gradle plugin still includes unsupported ABIs by default. armbeabi was deprecated in NDKr16 and removed in r17 hence the warning. To fix, list your supported architectures under splits.abi:

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

Got same issue and fixed through modifying the module build.gradle file by adding below setup:

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
        }
    }
}

For your reference, good luck.