Вдруг меня понесло
попробовать Ubuntu. После всех кругов ада
для человека не знакомого ранее с
линуксом, мне удалось настроить среду
разработки под Android.
Надо было всё это
описывать, потому что сейчас приверженцы
командной строки скажут: «Что там
сложного? Линукс просто создан для
пользователя!». Но я приобрёл полезный
опыт. Теперь я знаю что слушать, а что
просто ля-ля. Биться головой об Ubuntu я вынужден из-за одного своего проекта.
Посмотрим, что из этого выйдет. Обещаю
не превратиться в пингвина. Теперь буду
описывать всё что нагуглил для решения
всяких встреченных проблем, чтобы не
гуглить в следующий раз и может кому
пригодиться.
Итак, у меня HTC Sensation.
После настройки Eclipse Indigo я вполне
могу запускать своё Android-приложение на
виртуальном устройстве. Но при подключении
телефона к компьютеру в диалоге «Android
device chooser» я увидел устройство «????????????».
Выбрать его для запуска приложения
невозможно. Гугление привело меня на
эту страничку.
Почти помогло. Коротко напишу что
понадобилось.
- В файл «/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Откроется редактор с содержимым файла. В исходной ссылке предлагают скопировать текст в конец файла, у меня файл был пустой. Добавил, сохранил.
- Повторить то же самое с файлом «/etc/udev/rules.d/99-android.rules». Тот же текст. Не спрашивайте что это. Я не знаю. Я живу в мире магии, это просто очередное заклинание.
- Устанавливаем права на эти файлы. Говорят, надо. Набираем в терминале следующие строки:
sudo chmod
a+r /etc/udev/rules.d/51-android.rules
sudo chmod
a+r /etc/udev/rules.d/99-android.rules
- Перезапуск ADB. Тут автор источника немного поплыл. Мне помогло следующее заклинание в терминале:
sudo
~/android-sdk-linux/platform-tools/adb kill-server
sudo
~/android-sdk-linux/platform-tools/adb start-server
- Проверка. Сначала в терминале: ~/android-sdk-linux/platform-tools/adb devicesВопросики из названия устройства должны пропасть, название должно обрести смысл. Теперь можно запускать своё приложение на телефоне. Автор источника рекомендует перезапуститься, если не заработало.
- Ну и на десерт. После выключения и включения компьютера (я иногда отдыхаю, ем или сплю), устройство опять превратилось в тыкву. В вопросики. После перезапуска ADB (пункт 4) я вернул ему желаемый образ. Может не спать?
Дмитрий Дзаховв
Наверное, следует добавить про lsusb (то, как ты получил idvendor и idproduct). И тогда эта статья подойдёт для любого телефона :-)
ОтветитьУдалитьВообще-то я украл этот текст у первоисточника. Антон, спасибо за команду! Я поднял тему и узрел откуда берутся idVendor и idProduct (если вдруг у кого не HTC Sensation). Набрал в терминале "LSUSB" и получил несколько строк, среди которых были знакомые мне крокозяблики:
УдалитьBus 001 Device 003: ID 0bb4:0c86 High Tech Computer Corp.
А ещё я теперь знаю, что HTC это High Tech Computer. А я всё телефон, телефон...
Еще как вариант, это запустить adb start-server через супер пользователя, то есть root, команда будет выглядеть так "sudo adb start-server", но не очень удобно это делать каждый раз
ОтветитьУдалитьЭтот комментарий был удален автором.
УдалитьВот официальное решение: http://developer.android.com/tools/device.html#setting-up
ОтветитьУдалитьПосле смены HTC Sensation на HTC Sensation XE только оно-то мне и помогло. Странно, потому что idVendor и idProduct должны были остаться теми же.