2010-10-09 3 views
2

Я делаю некоторые приложения для Android довольно долгое время, но я только использую окна 7. Из-за некоторых причин иногда мне приходится программировать в linux, поэтому Я выполнил руководство по настройке SDK и eclipse (http://developer.android.com/guide/developing/device.html).Не удается развернуть apk из eclipse в ubuntu 10.10

После этого я побежал «ADB устройств» и получил это:

List of devices attached 
???????????? device 

Как вы можете видеть имя неизвестно, но это также происходит в окнах, так что я не смущайтесь слишком много над ним.

Тогда я начал затмение и сделал очень простой проект для проверки развертывания, но здесь две вещи произошли:

1st- Он не обнаруживает андроид версии SDK. (Http://img515.imageshack.us/img515/5611/escolha.jpg)

2nd- при попытке развернуть я получаю следующий результат:

[2010-10-09 23:06:45 - testeAndroid] Android Launch! 
[2010-10-09 23:06:45 - testeAndroid] adb is running normally. 
[2010-10-09 23:06:45 - testeAndroid] Performing com.examples.teste.teste activity launch 
[2010-10-09 23:06:45 - testeAndroid] Automatic Target Mode: Unable to detect device compatibility. Please select a target device. 
[2010-10-09 23:09:50 - testeAndroid] WARNING: Unknown device API version! 
[2010-10-09 23:09:50 - testeAndroid] Uploading testeAndroid.apk onto device '????????????' 
[2010-10-09 23:09:50 - testeAndroid] Failed to upload testeAndroid.apk on device '????????????' 
[2010-10-09 23:09:50 - testeAndroid] com.android.ddmlib.AdbCommandRejectedException: device not found 
[2010-10-09 23:09:50 - testeAndroid] Launch canceled! 

Я использую:

затмение 3.5.2

ADT 0.9.9

андроид инструменты SDK r7

Androi d телефон: vodafone 845 = Huawei U8120 - android 2.1-update1

Любая идея для того, что происходит?

заранее спасибо;)

ответ

5

Телефон Huawei U8120 (Vodafone 845) является одним из тех USB-устройств, которые представляют собой устройства хранения USB в операционной системе хоста для обслуживания файлов для установки драйвера Windows. Чтобы переключить их на USB-устройство в режиме Linux, вам нужно использовать usb_modeswitch. Вы можете скачать последний пакет usb_modeswitch с домашней страницы, включая поддержку вашего устройства. Или просто использовать этот вызов в командной строке:

$ Sudo USB_ModeSwitch -v 0x12d1 -p -s 0x1031 20 -М «55534243123456780600000080000601000000000000000000000000000000»

Однако, чтобы использовать его с Android инструменты, необходимые для решения другой проблемы, потому что Huawei U8120 (Vodafone 845) не имеет серийного номера. Могут быть другие способы обхода, но тот, который заставил его работать для меня, - это патч для утилиты adb, которая может справиться с устройствами, у которых нет серийного номера.

$ ./tools/adb устройства

Список устройств прилагается

noserial-/DEV/автобус/USB/001/036 Устройство

Патч здесь: https://review.source.android.com/#change,13552 и здесь вы можете найти двоичный код «adb», если вы доверяете этому источнику :) www.mediafire.com/?oizmyyw0wwz

смотри также http://code.google.com/p/android/issues/detail?id=4365

+0

Большое спасибо !!! : D Устройство уже было в правильном режиме, поэтому usb_modeswitch не был нужен (то есть он по умолчанию использовался в ubuntu 10.10 и автоматически переключается в правильный режим в соответствии с dmesg). Что действительно решило проблему, было исправлено adb. Невероятно, что такая ошибка все еще существует после стольких месяцев ее нахождения: S – RicardoSBA

0

Вы должны обновить свои правила Udev в соответствии с инструкцией по http://developer.android.com/guide/developing/device.html - то он будет работать.

+0

Спасибо за ответ, но я уже сделал это. Как вы можете видеть в моем вопросе, устройство уже появляется, когда я делаю «adb devices», и я даже могу использовать команды adb push, pull и install. Единственная проблема в том, что я пытаюсь развернуть приложение в eclipse, которое мне нужно для правильной отладки ... – RicardoSBA

+0

Конечно, но, как кажется, правила udev по-прежнему не верны (вы получаете ????????? как имя устройства). Я думаю, вы должны получить идентификатор продавца, запустив «lsusb» на консоли, пока устройство подключено к вашему компьютеру и соответствующим образом изменит правила udev. Затем перезапустите udev и замените свой телефон, и он должен работать. :-) – mreichelt

+0

Это действительно было ошибкой в ​​названии списка adb, когда ни одно устройство SN не было предоставлено, как объяснено в другом ответе. По-видимому, затмение или плагин adt не нравятся '???????' имя: P – RicardoSBA

0

Я также андроид plataform и всего пару дней, обновление, казалось, решить эту проблему. Вы должны сделать sudo usb_modeswitch -v 0x12d1 -p 0x1031 -s 20 -M "55534243123456780600000080000601000000000000000000000000000000" и стандартным adb, а также плагин ADT работал в ubuntu 10.04.

Моя версия adb 1.0.26 и плагин ADT 10.0.0.v201102162101-104271, поскольку обновления ADB заставили меня обновить плагин Eclipse.

+1

Извините ложную тревогу. Патч все еще работал. Когда я перезагрузился, он не был обнаружен. Таким образом, вам придется использовать измененные правила udev, метод mode_switch и патч bin. Использование устройств adb покажет устройство noserial-/dev/bus/usb/001/009 \t, но в Eclipse это отклонение распознается как обновление 2.1 и будет развернуто. – Malagas

Смежные вопросы