суббота, 28 января 2012 г.

Настройка Ubuntu 11.10 для отладки Android-приложений на HTC Sensation

Вдруг меня понесло попробовать Ubuntu. После всех кругов ада для человека не знакомого ранее с линуксом, мне удалось настроить среду разработки под Android.
Надо было всё это описывать, потому что сейчас приверженцы командной строки скажут: «Что там сложного? Линукс просто создан для пользователя!». Но я приобрёл полезный опыт. Теперь я знаю что слушать, а что просто ля-ля. Биться головой об Ubuntu я вынужден из-за одного своего проекта. Посмотрим, что из этого выйдет. Обещаю не превратиться в пингвина. Теперь буду описывать всё что нагуглил для решения всяких встреченных проблем, чтобы не гуглить в следующий раз и может кому пригодиться.
Итак, у меня HTC Sensation. После настройки Eclipse Indigo я вполне могу запускать своё Android-приложение на виртуальном устройстве. Но при подключении телефона к компьютеру в диалоге «Android device chooser» я увидел устройство «????????????». Выбрать его для запуска приложения невозможно. Гугление привело меня на эту страничку. Почти помогло. Коротко напишу что понадобилось.
  1. В файл «/etc/udev/rules.d/51-android.rules» вставил следующий текст:
#HTC Sensation
SUBSYSTEM=="usb", SYSFS{idVendor}=="[0bb4]", MODE="0666"
SUBSYSTEM=="usb",ATTR{idVendor}=="[0bb4]",ATTR{idProduct}=="[0c86]",SYMLINK+="android_adb"
SUBSYSTEM=="usb",ATTR{idVendor}=="[0bb4]",ATTR{idProduct}=="[0c86]",SYMLINK+="android_fastboot"

Для это в терминале необходимо выполнить команду
sudo gedit /etc/udev/rules.d/51-android.rulesОткроется редактор с содержимым файла. В исходной ссылке предлагают скопировать текст в конец файла, у меня файл был пустой. Добавил, сохранил.
  1. Повторить то же самое с файлом «/etc/udev/rules.d/99-android.rules». Тот же текст. Не спрашивайте что это. Я не знаю. Я живу в мире магии, это просто очередное заклинание.
  2. Устанавливаем права на эти файлы. Говорят, надо. Набираем в терминале следующие строки:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo chmod a+r /etc/udev/rules.d/99-android.rules
  1. Перезапуск ADB. Тут автор источника немного поплыл. Мне помогло следующее заклинание в терминале:
sudo ~/android-sdk-linux/platform-tools/adb kill-server
sudo ~/android-sdk-linux/platform-tools/adb start-server
  1. Проверка. Сначала в терминале: ~/android-sdk-linux/platform-tools/adb devices
    Вопросики из названия устройства должны пропасть, название должно обрести смысл. Теперь можно запускать своё приложение на телефоне. Автор источника рекомендует перезапуститься, если не заработало.
  2. Ну и на десерт. После выключения и включения компьютера (я иногда отдыхаю, ем или сплю), устройство опять превратилось в тыкву. В вопросики. После перезапуска ADB (пункт 4) я вернул ему желаемый образ. Может не спать?