Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
How-to-debug-Qt-applications-on-Android-device: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:HowTo]] | |||
This is a guide on how to enable a real on-device debugging for Qt applications on Android under Linux.<br />I will show you how to achive this for Samsung device, but the same steps are required for any android device, you just have to know who is a vendor of your device. | |||
You might also need to put the device in "developer mode&quot;, that is, enable "USB debugging&quot; in the Settings&gt;Developer Options of the device. | |||
Steps to achieve this are as follows:<br /> 1. Run lsusb | grep Samsung (if you use let’s say | See also "Using Hardware Devices&quot;:http://developer.android.com/tools/device.html . | ||
Steps to achieve this are as follows:<br />1. Run lsusb | grep Samsung (if you use let’s say HTC device just type HTC instead of Samsung after “grep”). You will see something like this:<br /><code>Bus 001 Device 003: ID 04e8:689e Samsung Electronics Co., Ltd GT-S5670 [Galaxy Fit]<code><br />Strings 04e8 and 689e are of a key value to get your android device propely recognized. | |||
2. Now make a rule 51-android.rules in the /etc/udev/rules.d/ directory. The number 51 is an information to udev so it can know in which order to load the rules. You can type some other number if you already had some rules defined, but keep in mind the order in which those rules will be applied. | 2. Now make a rule 51-android.rules in the /etc/udev/rules.d/ directory. The number 51 is an information to udev so it can know in which order to load the rules. You can type some other number if you already had some rules defined, but keep in mind the order in which those rules will be applied. | ||
3. In the file 51-android.rules input this: <br /> If you take a closer look you will see that we used those bold numbers from step 2 so that we can make our rule apply only to our device. So the first string04e8 is an ID of a vendor of the device (in this case vendor is Samsung), and the second string 689e is the ID of the product (in this case product is a GT-S5670 which is a designation of Samsung Galaxy Ace mobile device). | 3. In the file 51-android.rules input this:<br /></code>SUBSYSTEMS”usb”, ATTRS&#123;idVendor&#125;”04e8″, ATTRS{idProduct}==“689e”, MODE=”0666″</code><br />If you take a closer look you will see that we used those bold numbers from step 2 so that we can make our rule apply only to our device. So the first string04e8 is an ID of a vendor of the device (in this case vendor is Samsung), and the second string 689e is the ID of the product (in this case product is a GT-S5670 which is a designation of Samsung Galaxy Ace mobile device). MODE=“0666” just tells that the node that udev will create should be readable and writable by everyone. | ||
4. After you have saved the file, run this command in order to reload udev’s rules: <code>udevadm control —reload-rules<code> | |||
5. After you have reloaded the udev’s rules, you need to restart adb. Go to the folder where you keep your android SDK. Go to the folder platform-tools inside the android SDK directory and run:<br /></code>adb kill-server</code><br />and after that<br /><code>adb start-server <code> | |||
NOTE: if you get command not recognized error, just run those commands like this:<br /></code>./adb kill-server</code><br />and<br /><code>./adb start-server<code> | |||
This will reload adb server and it should now list your device, just run adb devices and if you see something like this:<br /></code>List of devices attached<br />S5830cba628dc device<br /><code><br />After this your device is properly recognized.<br />Now you are set and ready. Next time you hit Run button in Qt-Creator your app will load on your mobile device. |
Revision as of 08:58, 24 February 2015
This is a guide on how to enable a real on-device debugging for Qt applications on Android under Linux.
I will show you how to achive this for Samsung device, but the same steps are required for any android device, you just have to know who is a vendor of your device.
You might also need to put the device in "developer mode", that is, enable "USB debugging" in the Settings>Developer Options of the device.
See also "Using Hardware Devices":http://developer.android.com/tools/device.html .
Steps to achieve this are as follows:
1. Run lsusb | grep Samsung (if you use let’s say HTC device just type HTC instead of Samsung after “grep”). You will see something like this:
Bus 001 Device 003: ID 04e8:689e Samsung Electronics Co., Ltd GT-S5670 [Galaxy Fit]<code><br />Strings 04e8 and 689e are of a key value to get your android device propely recognized.
2. Now make a rule 51-android.rules in the /etc/udev/rules.d/ directory. The number 51 is an information to udev so it can know in which order to load the rules. You can type some other number if you already had some rules defined, but keep in mind the order in which those rules will be applied.
3. In the file 51-android.rules input this:<br />
SUBSYSTEMS”usb”, ATTRS{idVendor}”04e8″, ATTRS{idProduct}==“689e”, MODE=”0666″
If you take a closer look you will see that we used those bold numbers from step 2 so that we can make our rule apply only to our device. So the first string04e8 is an ID of a vendor of the device (in this case vendor is Samsung), and the second string 689e is the ID of the product (in this case product is a GT-S5670 which is a designation of Samsung Galaxy Ace mobile device). MODE=“0666” just tells that the node that udev will create should be readable and writable by everyone.
4. After you have saved the file, run this command in order to reload udev’s rules:
udevadm control —reload-rules<code>
5. After you have reloaded the udev’s rules, you need to restart adb. Go to the folder where you keep your android SDK. Go to the folder platform-tools inside the android SDK directory and run:<br />
adb kill-server
and after that
adb start-server <code>
NOTE: if you get command not recognized error, just run those commands like this:<br />
./adb kill-server
and
./adb start-server<code>
This will reload adb server and it should now list your device, just run adb devices and if you see something like this:<br />
List of devices attached
S5830cba628dc device
After this your device is properly recognized.
Now you are set and ready. Next time you hit Run button in Qt-Creator your app will load on your mobile device.