How to Run 32-Bit APKs on 64-Bit Android Phones in 2025
Have you ever downloaded an old game or app, tried installing it on your new phone, and got stuck with:
- ❌ “App not installed”
- ❌ “App keeps stopping”
- ❌ Crash as soon as you open it
If yes, you’ve hit the 32-bit vs 64-bit Android problem. In this guide, I’ll explain why this happens, what those mysterious .so library files are, and the different ways you can fix or work around it.
Why Old 32-Bit APKs Don’t Work on New Phones
Back in the day, most Android apps were built for armeabi-v7a (32-bit) devices.
Today, most modern phones are 64-bit only. That means:
- Older APKs with only 32-bit libraries fail to launch
- Newer phones expect
arm64-v8a(64-bit) libraries - Some devices (older 64-bit models) still support both, but Android 11/12/13+ dropped pure 32-bit support
👉 So if your APK doesn’t have 64-bit support, the phone either refuses to install or crashes immediately.
What Are .so Files Inside an APK?
When you open an APK, you’ll see a lib/ folder with .so files:
lib/armeabi-v7a/libgame.so → 32-bit
lib/arm64-v8a/libgame.so → 64-bit
These .so files are compiled native code (C/C++). They’re critical for games and apps that rely on native libraries.
- If the APK only has
armeabi-v7a/→ it’s 32-bit only - If it also has
arm64-v8a/→ it can run on modern devices
Common “Fixes” People Try (and Why They Fail)
1. Copying 32-bit .so files into a 64-bit folder
Some try creating a lib/arm64-v8a/ folder and copying the 32-bit files.
- ✅ The app installs
- ❌ But it crashes at launch with errors like:
dlopen failed: wrong ELF class: ELFCLASS32
2. Deleting the arm64-v8a folder
If you remove arm64-v8a and leave only armeabi-v7a:
- ✅ Works on older phones that still support 32-bit
- ❌ Doesn’t work on new 64-bit-only devices
3. Replacing .so with files from a newer APK
If the same app/game has a newer version with 64-bit support, you can extract its lib/arm64-v8a/ and add them to the old APK.
- ✅ Works if both versions are compatible
- ❌ Crashes if function calls don’t match
Can You Convert a 32-Bit .so to 64-Bit?
Short answer: No.
A .so file is already compiled machine code. You can’t just “convert” it.
The only way to get a 64-bit version is:
- Access the original C/C++ source code
- Recompile using the Android NDK targeting
arm64-v8a
Without the source, you’re stuck.
Real Ways to Run 32-Bit APKs on 64-Bit Android
If you’re just a user (not a developer), here are your realistic options:
✅ 1. Use a 32-bit Compatible Device
Old but reliable. If you have an older Android lying around, the app will likely run.
✅ 2. Use a PC Emulator
Install the APK in Bluestacks, LDPlayer, or Nox. These emulators still support 32-bit APKs and are perfect for games.
✅ 3. Use a Virtual Android App on Your Phone
Apps like VMOS Pro or X8 Sandbox let you run a separate virtual Android environment inside your phone.
- Supports 32-bit APKs
- Works without root
- Performance might be slower
✅ 4. Find a Newer APK with 64-Bit Support
Sometimes developers already released a 64-bit version. Installing that (or extracting its .so files) is the cleanest solution.
If You’re a Developer
If it’s your app and you have the code:
- Recompile using Android Studio + NDK
- Include both architectures:
armeabi-v7a → 32-bit
arm64-v8a → 64-bit
That way, your APK works everywhere.
Final Thoughts
- Simply copying
.sofiles doesn’t solve the 32 vs 64 problem. - The only true fix is having real 64-bit libraries.
- For end users: use VMOS/X8 Sandbox on Android or a PC emulator.
- For developers: recompile your project with NDK 64-bit support.
In short:
👉 If you’re a user, your best bet is sandbox or emulator apps.
👉 If you’re a dev, the fix is recompilation.
That’s how you run 32-bit APKs on 64-bit Android in 2025.

