Google details the upcoming 64-bit requirement for Android apps on the Play Store:

Starting August 1, 2019, your apps published on Google Play will need to support 64-bit architectures. 64-bit CPUs deliver faster, richer experiences for your users. Adding a 64-bit version of your app provides performance improvements, makes way for future innovation, and sets you up for devices with 64-bit-only hardware.

How to analyze your app compatible with 64- bit devices:

If you want to check your app supports the 64-bit first you analyze your apk file and then find the following native libraries folders based on ABI(Application Binary Interface) such as

For the 32-bit libraries folder

lib/armeabi-v7a (ARM platform)

lib/x86 (x86 platform)

For the 64-bit libraries folder

lib/arm64-v8a (ARM platform)

lib/x86_64 (x86 Platform)

so if you not find any .so file in the above folder then there are no changes required and your app is compatible with 64-bit.

If you are getting the .so file in the above folder then we need to update our app compatible to 64- bit.

if you are getting both 32- bit and 64-bit libraries so you do not need to required any changes.

if you not getting any 64-bit libraries folders so we need to update our third party (native libraries ) with those folders and further analyze the apk form the apk tool analyzer.





















if you won't make the apk with the latest CPU architecture you need to configure you gradile file with the ndk filters.

defaultConfig {

applicationId “my.test.64bitapp”

minSdkVersion 15

targetSdkVersion 26

versionCode 42

versionName “1.0.2”

multiDexEnabled true

vectorDrawables.useSupportLibrary = true

ndk.abiFilters ‘armeabi-v7a’, ‘arm64-v8a’, ‘x86’ ,’x86_64'



defaultConfig {

applicationId “com.swypmedia”

minSdkVersion 16

targetSdkVersion 26

versionCode 2

versionName “2.0.2”

ndk {

abiFilters ‘armeabi-v7a’, ‘arm64-v8a’, ‘x86’ ,’x86_64'



APP_ABI := arm64-v8a # Target only arm64-v8a

APP_ABI := all # Target all ABIs, including those that are deprecated.

APP_ABI := armeabi-v7a x86_64 # Target only armeabi-v7a and x86_64.

Split the Multiple Apk on the basis of ABI

splits {
// Configures multiple APKs based on ABI.
abi {

// Enables building multiple APKs per ABI.
enable true

// By default all ABIs are included, so use reset() and include
// to specify that we only want APKs for x86, armeabi-v7a, and mips.

// Resets the list of ABIs that Gradle should create APKs for to none.

// Specifies a list of ABIs that Gradle should create APKs for.
include “mips”, “x86”, “x86_64”, “arm64-v8a”, “armeabi-v7a”

// Specifies that we do not want to generate a universal APK
// that includes all ABIs.
//universalApk true //generate an additional APK that contains all the ABIs
universalApk false
// map for the version code
project.ext.versionCodes = [‘armeabi’: 1, ‘armeabi-v7a’: 2, ‘arm64-v8a’: 3, ‘mips’: 5, ‘mips64’: 6, ‘x86’: 7, ‘x86_64’: 8]

android.applicationVariants.all { variant ->
// assign different version code for each output
variant.outputs.each { output ->
output.versionCodeOverride =
project.ext.versionCodes.get(output.getFilter(, 0) * 1000000 + android.defaultConfig.versionCode



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store