Skip to content

Setup Android Studio and Emulator on Fedora Linux

  • Posted on: August 27, 2026

Ok, so... this whole mess started because I thought I something was simple but in fact UTTERLY didn't understand what I was getting into.

For context: I recently ditched Apple in favour of Linux and... boy I wasn't ready.

And I'm a developer!

So I wanted to carry on my mobile development work, which I thought it'd be simple. I just install Android Studio, get the emulators running, proceed to programming, right? And Fedora comes with an "App Store", which lists Android Studio. So I naively open the "Software" app, install the IDE and... BOOM! 🤯

The emulator process for AVD Pixel_9_Pro has terminated.

The error

WHY?!?!

So... 2 days and multiple detours later, I discovered that – silly me! – I was trying to debug the error that was presented to me, but that was IN NO WAY related to why things weren't working. I thought it was too little memory, or wrong settings in the AVD, some missing library or BIOS VT-X feature on linux.... but no. It was the fact that I installed the app from the freaking built-in app store! 🥲

For the readers laughing at my mysery right now, the solution to my problems (DO NOT USE IT) would have been this:

bash
# DO. NOT. USE. THIS!
flatpak override --user --device=kvm --filesystem=host com.google.AndroidStudio

That should give you a clue of my issue. Because Flatpak apps run inside a restricted "sandbox," Android Studio is completely isolated from my system. The emulator command line tool inside the sandbox cannot talk to the KVM virtualization hardware on my machine, which causes it to crash instantly. Hence the need for that command to give Android Studio from Flatpak permission to access the host system's virtualization engine.

If you're now thinking "well... that sounds like a mess", I AGREE! So here's what I did and recommend you also do. First of all: NUKE THE FLATPAK VERSION.

Here's the command for that:

bash
flatpak uninstall --delete-data com.google.AndroidStudio -y

Now we can reset and do things properly from the beginning. Let's install the native Android Studio and fix the AVD.

The native way

Welcome to my clean, step-by-step instructions to configure an Intel-based x86_64 machine running Fedora for native Android mobile development from the actual scratch.

Step 1: Verify Hardware Virtualization

Firstly we got to ensure the Linux kernel modules for Intel hardware virtualization (kvm_intel) are properly loaded.

bash
lsmod | grep kvm

Expected Output: You should see lines containing kvm and kvm_intel. Like this:

kvm_intel             547864  0
kvm                  1567767  1 kvm_intel
irqbypass              16374  1 kvm

Step 2: Configure KVM User Permissions

Next, grant our user direct read/write permissions to the KVM virtualization hardware engine.

bash
sudo usermod -aG kvm $(whoami)

⚠️ Important: You must log out of your desktop session completely (or reboot your system) for these group changes to apply.

After logging back in, we can double-check that permissions are correct:

bash
test -w /dev/kvm && echo "Yay: You can use KVM!" || echo "Nope: Permission denied :("

...assuming you see the "yay" message, we can proceed. Yay!

Step 3: Install Core System Dependencies

Cool. Now we need to install the crap the IDE needs to work utilities and libraries required by the Android Emulator to render layouts and process system tasks natively.

bash
sudo dnf install -y ncurses-compat-libs libstdc++.i686 glibc.i686 libgcc.i686

⚠️ I ran into an error here: The first time I ran this, I got a Status code: 404 for http://mirror.netzwerge... blah blah blah. The solution was to just run the command again and it showed Nothing to do. at the end, meaning I was fine. The 404 error was just DNF skipping a broken mirror and instantly grabbing the file from a working one.

Step 4: Configure the Environment Variables

Cool, but we're devs. We like terminals. So for that to work we must expose the Android SDK location and utility paths to our shell configuration. To do that, append the paths to your shell file:

⚠️ YOU MIGHT HAVE A CUSTOM PATH!!! Change ANDROID_HOME accordingly Also, if you use zsh, just replace ~/.bashrc with ~/.zshrc

bash
cat << 'EOF' >> ~/.bashrc

# Android SDK Custom Path Configuration
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=PATH:ANDROID_HOME/emulator
export PATH=PATH:ANDROID_HOME/platform-tools
EOF

Next, reload your current terminal instance to apply the changes immediately:

bash
source ~/.bashrc

Step 5: Extract and Launch Android Studio Natively

Almost there!

Now download the official .tar.gz Linux package from the Android Developer website.

Download button on Android Studio official website

What I did was move it from the Downloads folder (where my browser deposits things) to the home directory to make it easier for me.

bash
mv ~/Downloads/android-studio-*.tar.gz ~/android-studio-*.tar.gz

Once moved, extract it natively inside your home directory

⚠️ "Why the home directory?" → to prevent sandbox constraints again

bash
cd ~ && tar -xzf android-studio-*.tar.gz

PS - you might want to remove the archive file now. No one likes clutter.

bash
rm android-studio-*.tar.gz

Now we can – finally! – start the app. For now we gotta use the native binary launcher script, but we'll fix that.

bash
~/android-studio/bin/studio.sh

Step 6: Finalize IDE & Device Configurations

And from here on, everything worked. 😍

I followed the flow and it all went as expected.

Basically what I did was:

  1. Complete Setup Wizard: Proceed through the graphical setup wizard. I chose the "Standard" setup.

⚠️ one thing to note here is that it at some point the wizard tells you to "Configure VM acceleration on Linux" and if you followed this guide you can safely ignore it, because we've already covered those in steps 1 through 3.

Android Studio Setup Screen - Install Type

  1. Create Desktop Shortcut: Once at the welcome dashboard, click More Actions (three dots) -> Create Desktop Entry. This links Android Studio into Fedora's application launcher grid and allows pinning to your system Dock.

  2. Configure Virtual Device: Open the Virtual Device Manager, click Create Virtual Device, select a hardware template (e.g., Pixel 9 Pro), and choose a standard production x86_64 image to leverage your full KVM hardware speed. You can see my emulator config below.

Emulator: Device Settings

pixel-config-1

Emulator: Additional Settings

pixel-config-2

And the best part of all:

IT WORKS!!!

emulator works

I hope this helps someone else out there.