APK & App Bundles

Check APK Architecture: arm64-v8a, armeabi-v7a and x86_64

Check an APK's native architecture by inspecting its packaged lib/<abi>/ directories, not by guessing from the phone model or the APK filename. The application may support several ABIs, use only managed code, or depend on a native library hidden inside a third-party SDK.

By Updated 2 min read

Establish the package scope

Start with the exact APK or split set under review:

BASH · REFERENCE EXAMPLE
apkanalyzer files list app.apk

Look for entries such as lib/arm64-v8a/libexample.so, lib/armeabi-v7a/ or lib/x86_64/. An ABI describes the native binary interface; it is not the Android API level. Android ABI reference.

If the APK is a base split, native libraries may be in a companion configuration APK. Absence from the base alone is not evidence that the complete installation contains no native code.

Interpret common layouts

Observation Possible meaning
Several ABI directories A universal or multi-architecture package
Only one ABI directory A targeted package or deliberately limited support
No native libraries in a standalone APK The package may be managed-code-only
One SDK missing from an ABI That device path may fail at library loading

Check every required native dependency for each supported architecture. Including an arm64 version of your own library does not help if a critical vendor library is available only for another ABI.

Diagnose installation and runtime separately

An installation error about incompatible native code concerns package compatibility. A later UnsatisfiedLinkError may involve a missing library, a missing symbol, load order or an incompatible dependency—not merely the top-level directory name.

Record the exact library and exception. Compare the package inventory with the build's ABI filters and the vendor's supported artifacts. Do not fix a missing dependency by copying an unrelated .so into the APK after signing.

Verify with a representative device matrix

Test the architectures your distribution promises. Emulation is useful, but a successful x86_64 emulator run does not establish arm64 native behavior. If Play generates architecture-specific packages, inspect those outputs rather than only a universal debug APK.

APKLint's analyzer can surface native ABI names and structural information. For complete native compatibility, use the original build, Android's analysis commands and real installation/runtime tests. An ABI match is necessary for relevant native code but not sufficient for full device compatibility.

Sources and further reading

  1. Android NDK: Android ABIs
  2. Android Developers: apkanalyzer command-line reference

Reference review: 22 September 2026. Examples illustrate the workflow; check your installed versions, release artifact and account-specific Console requirements before applying them. This guide is not a claim that APKLint executed your project or verified your private account.

APKLint

Android inspection tools and practical release guides. About APKLint · Report a correction