Setting Up Your Android Device for Development on Ubuntu Linux

Setting Up Your Android Device for Development on Ubuntu Linux

22 April 2024 Stephan Petzl Leave a comment Tech-Help

When developing Android applications on Ubuntu Linux, it’s often necessary to test your applications on a real device. This guide will walk you through the steps to get your Android device ready for development and troubleshoot a common issue where the device is not properly recognized by the Android Debug Bridge (ADB).

Initial Setup

Before you begin, ensure that you’ve completed the following preliminary steps:

  • Enable USB debugging on your Android device.
  • Ensure that your user account is a member of the plugdev group on your Ubuntu machine.
  • Create a udev rules file to set proper permissions when your Android device is connected.

Troubleshooting Device Permissions

If you’ve followed the initial setup steps but your device is still not recognized by ADB, showing a “no permissions” error, you can try the following solutions:

Restart ADB with Proper Permissions

To resolve permission issues, you can restart the ADB server with root privileges:

sudo adb kill-server
sudo adb start-server

This will often allow ADB to detect your device without the “no permissions” error.

Check and Update udev Rules

Ensure that your udev rules file includes the correct vendor ID for your device. You can find the vendor ID by using the lsusb command:


Look for your device in the output and note the vendor ID. Then, confirm that your udev rules file at /etc/udev/rules.d/51-android.rules has an entry for your device with the proper vendor ID and permissions:

SUBSYSTEM=="usb", ATTR{idVendor}=="your_vendor_id", MODE="0666", GROUP="plugdev"

After updating the rules, reload them and restart the udev service:

sudo udevadm control --reload-rules
sudo service udev restart

Finally, disconnect and reconnect your device, then check if it’s recognized by ADB:

adb devices

Switch Connection Mode

In some cases, switching your device’s USB connection mode to Camera (PTP) mode instead of Media Transfer Protocol (MTP) can help resolve detection issues.

Introducing Repeato

After successfully connecting your device for development, you may want to automate your testing process. Repeato is a no-code test automation tool for iOS and Android that can accelerate your testing workflow. With its computer vision and AI capabilities, Repeato allows you to create, run, and maintain automated tests with ease, even if your application is built with frameworks like React Native, Flutter, or Unity.

Repeato comes equipped with ADB onboard, enabling you to execute ADB commands via script steps. This feature can be particularly useful when dealing with device-specific actions or configurations during automated testing. For developers facing issues with device permissions, Repeato offers a streamlined and efficient way to manage and run tests, ensuring a smooth development and testing experience.

To learn more about how Repeato can complement your development and testing efforts, check out our article on Repeato vs. Appium.

Like this article? there’s more where that came from!