Chivorn
Chivorn

Reputation: 2363

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

I had this issue last time after upgrade NDK version to latest version in Android Studio. I also found solution to fix this. If anyone has this issue , I hope it is the best question and answer for you. Please check my answer.

Upvotes: 29

Views: 36184

Answers (4)

Wilson Chen
Wilson Chen

Reputation: 526

This doesn't resolve my problem, i resolved by adding this:

        ndk {
            abiFilters "armeabi-v7a"
        }

to android.defaultConfig

Upvotes: 1

Filipe Oliveira
Filipe Oliveira

Reputation: 69

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", ...
    }
}

Upvotes: 6

ffhorse
ffhorse

Reputation: 21

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.

Upvotes: 2

Chivorn
Chivorn

Reputation: 2363

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.

Upvotes: 23

Related Questions