All Posts programming [fixed] Android Studio has generic gear icon in Ubuntu dock

[fixed] Android Studio has generic gear icon in Ubuntu dock

· 931 words · 5 minute read

The issue where Android Studio’s icon appears correctly in the Ubuntu application menu/screen but displays incorrectly (e.g., as a generic gear icon or a duplicate/wrong icon) on the dock/panel when the application is open is often caused by a mismatch between the .desktop file and the window’s WM_CLASS property.

This is a common problem in Ubuntu, particularly with applications like Android Studio that are launched via a shell script, which then spawns a Java process. Here is how I fixed it in my case.

my solution: re-create desktop entry/file using Android Studio 🔗

I recorded my solution in a video on YouTube, if you like watching videos more than reading, here it is.

What I did is simply:

  1. create a new .desktop entry file using Android Studio by clicking on Tools in the Android Studio menu, then clicking Create Desktop Entry. This creates a new entry file.
  2. remove old .desktop entry files.

solution: fix the Android Studio icon on the Ubuntu dock 🔗

Launch Android Studio and Find the WM_CLASS 🔗

  • Open Android Studio from the terminal or the application menu.
  • Press Alt + F2 to open the “Run a Command” dialog.
  • Type lg (short for “Looking Glass”) and press Enter. This opens GNOME’s integrated debugger and inspector tool.
  • In the Looking Glass window, click on the Windows tab.
  • Locate the Android Studio window in the list and note the wmclass value. It is typically something like jetbrains-studio.

Locate or Create the .desktop File 🔗

  • Check for an existing .desktop file in one of these locations:
    • User-specific: ~/.local/share/applications/
    • System-wide: /usr/share/applications/
  • Look for a file named jetbrains-android-studio.desktop, jetbrains-studio.desktop, studio.desktop or similar.
  • If it doesn’t exist, you can create one manually or generate it via Android Studio:
    • Open Android Studio.
    • Go to Tools > Create Desktop Entry in the menu. This should create a .desktop file in ~/.local/share/applications/.

Edit the .desktop File 🔗

  • Open the .desktop file (e.g., ~/.local/share/applications/jetbrains-android-studio.desktop ) with a text editor, such as nano, gedit, vim, or nvim:
nano ~/.local/share/applications/jetbrains-android-studio.desktop
  • Ensure the file contains the correct Icon and Exec paths. A typical .desktop file looks like this:
[Desktop Entry]
Version=1.0
Type=Application
Name=Android Studio
Exec=/path/to/android-studio/bin/studio.sh %f
Icon=/path/to/android-studio/bin/studio.png
Categories=Development;IDE;
Terminal=false
StartupNotify=true
StartupWMClass=jetbrains-android-studio

or

[Desktop Entry]
Version=1.0
Type=Application
Name=Android Studio
Exec=/path/to/android-studio/bin/studio %f
Icon=/path/to/android-studio/bin/studio.svg
Categories=Development;IDE;
Terminal=false
StartupNotify=true
StartupWMClass=jetbrains-studio
  • Add or modify the StartupWMClass line to match the wmclass value you found in step 1 (e.g., StartupWMClass=jetbrains-studio) if it is not already correct.
  • Verify that the Icon path points to the correct icon file (e.g., /path/to/android-studio/bin/studio.png). If you’re unsure, you can specify the full path to the icon file in the Android Studio installation directory.
  • save the file and exit.

Update the Desktop Database 🔗

  • Run the following command to ensure the system recognizes the updated .desktop file:
update-desktop-database ~/.local/share/applications/

Sometimes, it does not need to be run at all.

Pin the Application to the Dock 🔗

  • Launch Android Studio from the application menu (not the dock yet).
  • Right-click the Android Studio icon in the dock (it should now show the correct icon).
  • Select Add to Favorites to pin it to the dock.

Check for Conflicting .desktop Files 🔗

  • Ensure there are no duplicate .desktop files for Android Studio in ~/.local/share/applications/ or /usr/share/applications/. If duplicates exist, the local file (~/.local/share/applications/) takes precedence. Delete or rename any conflicting files.
  • you can check for duplicates with:
ls ~/.local/share/applications/ | grep android
ls ~/.local/share/applications/ | grep studio
ls /usr/share/applications/ | grep android
ls /usr/share/applications/ | grep studio

Restart the GNOME Shell (Optional) 🔗

  • If the icon still doesn’t display correctly, restart the GNOME Shell to refresh the desktop environment:
killall -HUP gnome-shell
  • Alternatively, log out and log back in, or reboot the system.

Additional Notes 🔗

Why This Happens? 🔗

When Android Studio launches, the studio.sh script starts a Java process, which creates a window with a WM_CLASS that doesn’t match the .desktop file by default. GNOME Shell fails to associate the window with the correct icon, resulting in a generic or duplicate icon on the dock. Adding the StartupWMClass entry resolves this by linking the window’s WM_CLASS to the .desktop file.

Icon Path 🔗

If the icon still doesn’t appear, ensure the Icon field in the .desktop file points to a valid image file (PNG or SVG). You can also use an icon from your system’s icon theme (e.g., Icon=android-studio) if the icon is installed in /usr/share/icons/ or ~/.local/share/icons/.

Ubuntu Version associated with this issue 🔗

This issue is common across Ubuntu versions (e.g., 20.04, 22.04, 24.04) and is particularly prevalent with JetBrains IDEs like Android Studio due to their Java-based architecture. The steps above are applicable to most recent Ubuntu releases using GNOME.

Troubleshooting 🔗

Duplicate Icons 🔗

If two icons appear on the dock (one correct, one generic), it’s likely due to a mismatch in StartupWMClass or multiple .desktop files. Double-check the WM_CLASS and remove any conflicting .desktop files.

No Icon File 🔗

If the icon file is missing, copy studio.png from the Android Studio installation directory (e.g., /path/to/android-studio/bin/studio.png) to ~/.local/share/icons/ and update the Icon field to point to it.

Still Not Working 🔗

If the issue persists, try launching Android Studio from the terminal (/path/to/android-studio/bin/studio.sh) and check for error messages. Also, verify that the JAVA_HOME environment variable is set correctly, as it can affect Android Studio’s behavior:

echo $JAVA_HOME

If unset, configure it in ~/.bashrc or ~/.zshrc :

export JAVA_HOME=/path/to/java

or ~/.config/fish/config.fish:

set -gx JAVA_HOME "/path/to/java"

If you still face the same issue, contact me on YouTube , Twitter (x) , LinkedIn , and GitHub .

If you know a person who can benefit from this information, send them a link of this post.

Translations:  العربية (حل مشكلة عدم ظهور أيقونة أندرويد ستوديو بشكل صحيح في جينوم على أوبونتو لينكس )